问答详情
源自:1-1 文件的编码

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

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

提问者:AngusHu 2016-12-14 01:38

个回答

  • 慕粉4406662
    2016-12-14 09:58:57
    已采纳

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

  • JonSay
    2016-12-14 10:04:20

    把前面的0去掉