课程
/后端开发
/Java
/文件传输基础——Java IO流
byte型数据(比如-14)和0xff进行与运算,会改变它的正负号吗?
2017-04-27
源自:文件传输基础——Java IO流 4-2
正在回答
byte---字节类型,即一个字节,占8位,最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
Java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数。
正数补码为其本身;负数补码为其绝对值各位取反加1;
(-14),按照概念其绝对值为0000 1110,各位取反为1111 0001,再加1为1111 0010,即(-14)的二进制表示形式为11110010。
1111 0010 & 0xff,与运算后结果为1111 0010,结果还是(-14),所以不改变其正负号。
好像不对啊,我测试了一下,申明一个byte类型的数-14,输出它与0xff与运算的结果,不是-14,而是242
袁初
举报
为您介绍IO流的使用,以及对象的序列化和反序列化的内容
2 回答不和0xff想与,结果有问题啊
1 回答请问关于0xff的问题
2 回答0xff的问题
1 回答0xff的作用
3 回答为什么位与0xff后能去掉前面的0