A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一步步 中级黑马   /  2013-11-13 16:34  /  1020 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                for(byte b:by)        {
                System.out.println(Integer.toBinaryString(b&255));
        }

这句话是把数字转化成二进制数,b&255这句话是怎么让二进制数只显示后八位的?

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

3 个回复

倒序浏览
首先255也是一个int型的常量,做&位与运算的时候,转换成二进制代码就是32位,其中前面的24位都是0,最后八位为一就是0000 0000 0000 0000 0000 0000 1111 1111,而&符号是位与,就是在二进制的每个位上做与运算,这样一来,b中的前面24位都变成了0,只有后8位得以保留,在system.out输出的时候,会省略前面的0位,于是只输出了后面的8位
回复 使用道具 举报
这个就是把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

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
帖子已分类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马