本帖最后由 chouwayメ 于 2013-5-25 18:27 编辑
Java的整数 其基本数据类型都表示有符号的整数.
byte可取的值是-128到127,所能表示的个数也就是256了
--------
关于老师那&255操作的理解:
如果byte a=-1 也就是--> 11111 1111
假设直接return b 那么会被直接转型成int -->1111 1111 1111 1111 (因为方法返回的值类型为 int)
也就是返回的值也是 -1 那么这个值之后将不再执行while循环.即数据读取不完整.(因为循环的条件不满足)
如果return的是 b&255
因为这个表达式里,在数据类型可兼容条件下,byte 数据类型的b 被类型提升了,提升成了int型.
则 byte a=-1 --> 1111 1111 1111 1111
255 --> 0000 0000 1111 1111
&结果 --> 0000 0000 1111 1111
也就是255了.
也就是说在读取的值为byte b=-1时这种情况时仍可以继续循环,数据的读取能够完整.
另一部分原因:之所以运算&255, 而不是&244等,是为了保证数据传递的连贯性~ |