问答详情
源自:4-2 字节流之文件输入流FileInputStream-2

0xff有关的与运算

byte型数据(比如-14)和0xff进行与运算,会改变它的正负号吗?

提问者:慕粉2138545409 2017-04-27 22:13

个回答

  • 袁初
    2017-04-28 14:12:17
    已采纳

    byte---字节类型,即一个字节,占8位,最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

    Java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数。

    正数补码为其本身;
    负数补码为其绝对值各位取反加1;

    (-14),按照概念其绝对值为0000 1110,各位取反为1111 0001,再加1为1111 0010,即(-14)的二进制表示形式为11110010。

    1111 0010 & 0xff,与运算后结果为1111 0010,结果还是(-14),所以不改变其正负号。

        


  • 慕粉2138545409
    2017-04-28 15:45:32

    好像不对啊,我测试了一下,申明一个byte类型的数-14,输出它与0xff与运算的结果,不是-14,而是242