课程
/后端开发
/Java
/文件传输基础——Java IO流
把编码转成十六进制的时候老师做了Integer.toHexString(b & 0xff),这个& 0xff是做什么用的?谢谢。
2016-12-14
源自:文件传输基础——Java IO流 1-1
正在回答
b是byte类型占8位,而我们需要的int类型是32位,所以会进行符号位扩展。如果原来的byte为11111111,扩展后就会变为11111111 11111111 11111111 11111111,所以需要把前三位变为0,0xff二进制就是1111 1111,前三位都是0,所以与0xff相与后就只剩下最低的一位为1。
AngusHu 提问者
把前面的0去掉
举报
为您介绍IO流的使用,以及对象的序列化和反序列化的内容
1 回答0xff什么意思?
8 回答为什么要用0xff呢
2 回答为什么要返回b.length 是什么意思呢
2 回答有朋友知道这句什么意思?System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); 尤其是buf[i] & 0xff)这句.
2 回答这一段是什么意思?为什么字节数组里面要放8*1024