负数的二进制表示方法

负数表示不是简单地将最高位变为1,比如:

1)byte a=-1,如果只是将最高位变为1,二进制应该是10000001,但实际上,它应该是11111111。

2)byte a=-127,如果只是将最高位变为1,二进制应该是11111111,但实际上,它却应该是10000001。

和我们的直觉正好相反,这是什么表示法?这种表示法称为补码表示法,而符合我们直觉的表示称为原码表示法,补码表示就是在原码表示的基础上取反然后加1。取反就是将0变为1,1变为0。负数的二进制表示就是对应的正数的补码表示,比如:

1)-1:1的原码表示是00000001,取反是11111110,然后再加1,就是11111111。

2)-2:2的原码表示是00000010,取反是11111101,然后再加1,就是11111110。

3)-127:127的原码表示是01111111,取反是10000000,然后再加1,就是10000001。

总结下来就是:负数的表示方式是,先写出其原码,按位取反,加1。

你可能感兴趣的:(负数的二进制表示方法)