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

来源:1-1 文件的编码

AngusHu

2016-12-14 01:38

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

写回答 关注

2回答

  • 慕粉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。

    AngusH...

    谢谢!有一点晕这个回答后面说的三位和前面的32,8位不是一个东西吧?有点乱...前面说的是不是bit。然后int如果是32位的岂不是很多特别大的数字就没法用int类型了?

    2016-12-14 10:58:23

    共 1 条回复 >

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

    把前面的0去掉

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题