为了账号安全,请及时绑定邮箱和手机立即绑定

有朋友知道这句什么意思?System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); 尤其是buf[i] & 0xff)这句.

有朋友知道这句什么意思?System.out.print(Integer.toHexString(buf[i] & 0xff)+"  ");    尤其是buf[i] & 0xff)这句.


正在回答

2 回答

0xff即16进制的1515,转化为二进制为11111111,不管byte[i]要转化为什么进制,要变成多少位,只要和11111111相与,结果就是个八bit位的数,所以就去0,
只要知道0xff=11111111就好,它是8bit位。

0 回复 有任何疑惑可以回复我~
#1

阿森纳酋长球场 提问者

非常感谢!
2016-12-25 回复 有任何疑惑可以回复我~

0xff相当于00000000 00000000 00000000 11111111.这样就只保留最后的低8位。toHexString是装换为16进制

1 回复 有任何疑惑可以回复我~
#1

阿森纳酋长球场 提问者

如果没有& 0xff,代码就是这样System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); 结果会有什么不同?
2016-11-30 回复 有任何疑惑可以回复我~
#2

weibo_陈_兆群_0 回复 阿森纳酋长球场 提问者

就是只输出后面的8位,一个字节。
2016-11-30 回复 有任何疑惑可以回复我~
#3

阿森纳酋长球场 提问者 回复 weibo_陈_兆群_0

?? 最后的低8位和后面的8位有什么区别??
2016-11-30 回复 有任何疑惑可以回复我~
#4

weibo_陈_兆群_0 回复 阿森纳酋长球场 提问者

没区别
2016-11-30 回复 有任何疑惑可以回复我~
#5

阿森纳酋长球场 提问者 回复 weibo_陈_兆群_0

朋友,能讲清楚些关于& 0xff的用处不?或者有什么好的网站?我在网上搜的都是些怎么算着,具体用在什么么方面不清楚,
2016-12-01 回复 有任何疑惑可以回复我~
#6

weibo_陈_兆群_0 回复 阿森纳酋长球场 提问者

这里就有啊,你找一下二进制基础
2016-12-02 回复 有任何疑惑可以回复我~
查看3条回复

举报

0/150
提交
取消

有朋友知道这句什么意思?System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); 尤其是buf[i] & 0xff)这句.

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信