日期:2014-05-20  浏览次数:20694 次

二进制打印问题
byte b = new Integer(168).byteValue();
System.out.println(b);
int m =b&0xff;
System.out.println(m);
为什么打印的结果是
-88
168呢

------解决方案--------------------
byte的范围是-128~127,
168 是 1010 1000,转成byte,最高位(最左边)的1,就不再是数字,而是成了负号的标志,补码
1010 1000 = -(0101 0111 + 1) = -(87 + 1) = -88