MyException - 我的异常网
当前位置:我的异常网» J2SE » 二进制打印有关问题

二进制打印有关问题

www.MyException.Cn  网友分享于:2013-12-24  浏览:51次
二进制打印问题
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

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有