慕粉2138545409
2017-04-27 22:13
byte型数据(比如-14)和0xff进行与运算,会改变它的正负号吗?
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
文件传输基础——Java IO流
133754 学习 · 1030 问题
相似问题