为什么用补码表示负数, 为什么负数比正数多1?

(1)无符号16位的范围 0000 0000 0000 0000 到 1111 1111 1111 1111
无符号16位整型数据的取值范围是0到65535。
(2)有符号16位范围 正数: 0000 0000 0000 0001 到 0111 1111 1111 1111
十进制数为1到32767
负数1000 0000 0000 0000 到 1111 1111 1111 1111
十进制数为-32768到32767
(3)-1 和 -32768的补码 1的原码: 0000 0000 0000 0001;
取反: 1111 1111 1111 1110;
+1: 1111 1111 1111 1111。
-1的补码为1111 1111 1111 1111。

32768的原码:1000 0000 0000 0000
取反:0111 1111 1111 1111
+1: 1000 0000 0000 0000

(4)-32769为什么不行 32769原码: 1000 0000 0000 0001
取反: 0111 1111 1111 1110
+1: 0111 1111 1111 1111
这是什么, 32767
(5)为什么要用补吗显示负数 为了正数和负数相加的时候容易操作吧
比如2+(-1), 用负数直接显示, 就是-3了
为什么用补码表示负数, 为什么负数比正数多1?
文章图片

用补码呢
为什么用补码表示负数, 为什么负数比正数多1?
文章图片

(6)为什么有符号负数比正数个数多1个呢? 假如是8位的有符号
正数范围 0000 0001 ~ 0111 1111(1~127)
负数范围1000 0001 ~ 1111 1111(-127~1)
另外首位为0 和 1 分别还有以下组合
0000 0000 和 1111 1111
分别是0 和-128
原本首位为0或者1(正负符号) 后面7位,对应的组合个数是一样的.
【为什么用补码表示负数, 为什么负数比正数多1?】但是0000 0000给0用了, 1111 1111 给负数用了,所以负数比正数多一个.

    推荐阅读