黑马程序员技术交流社区
标题:
二进制的疑问
[打印本页]
作者:
一步步
时间:
2013-11-13 16:34
标题:
二进制的疑问
for(byte b:by) {
System.out.println(Integer.toBinaryString(b&255));
}
这句话是把数字转化成二进制数,b&255这句话是怎么让二进制数只显示后八位的?
作者:
文涛
时间:
2013-11-13 16:51
首先255也是一个int型的常量,做&位与运算的时候,转换成二进制代码就是32位,其中前面的24位都是0,最后八位为一就是0000 0000 0000 0000 0000 0000 1111 1111,而&符号是位与,就是在二进制的每个位上做与运算,这样一来,b中的前面24位都变成了0,只有后8位得以保留,在system.out输出的时候,会省略前面的0位,于是只输出了后面的8位
作者:
hubby
时间:
2013-11-13 16:52
这个就是把b和255进行与操作,即b的2进制与255相与 例如b的二进制是10101010
把32进制前面的0补齐
00000000 00000000 00000000 10101010 b
&00000000 00000000 00000000 11111111 255
与的规则是只有相同位置都为1才为1.
结果就是
00000000 00000000 00000000 10101010 b
作者:
黄炳期
时间:
2013-11-13 18:12
帖子已分类
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2