首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

二进制打印有关问题

2011-12-23 
二进制打印问题byte b new Integer(168).byteValue()System.out.println(b)int m b&0xffSystem.out.

二进制打印问题
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

热点排行