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

为什么toHexString()里要加&0xff?是什么意思?

把编码转成十六进制的时候老师做了Integer.toHexString(b & 0xff),这个& 0xff是做什么用的?谢谢。

正在回答

2 回答

b是byte类型占8位,而我们需要的int类型是32位,所以会进行符号位扩展。如果原来的byte为11111111,扩展后就会变为11111111 11111111 11111111 11111111,所以需要把前三位变为0,0xff二进制就是1111 1111,前三位都是0,所以与0xff相与后就只剩下最低的一位为1。

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

AngusHu 提问者

谢谢!有一点晕这个回答后面说的三位和前面的32,8位不是一个东西吧?有点乱...前面说的是不是bit。然后int如果是32位的岂不是很多特别大的数字就没法用int类型了?
2016-12-14 回复 有任何疑惑可以回复我~

把前面的0去掉

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

举报

0/150
提交
取消

为什么toHexString()里要加&0xff?是什么意思?

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