來自oracle website的引用「字節:字節數據類型是一個8位帶符號的二進制補碼整數,其最小值爲-128,最大值爲127(含)。Java中的帶符號字節類型和位運算符?
這裏,前兩行是有效的,但最後還不是
byte b = -128;
byte b1 = 127;
byte b2 = b>>>b1;//illegal
Q1)什麼是8位究竟意味着簽署?二進制格式的128將是1000 0000,-128需要一個額外的負值符號位,如果所有8位都被佔用,那麼它將適合。 Q2)對於int,有一個無符號的右移運算符,但是這對於字節來說似乎是非法的,爲什麼會這樣。在字節的情況下可以防止溢出。在case of int, it works
感謝您的幫助
感謝,在8位而言,哪裏的牌子去了? '+'和'-'應該是8位的一部分嗎? – eagertoLearn
將「byte」的值看作所有8位值的總和:-128,64,32,16,8,4,2和/或1. – rgettman
這意味着一個8位表示1000 0000應該是-128?而不是128.? – eagertoLearn