(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了
用补码呢
(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位, 对应的组合个数是一样的.
但是0000 0000给0用了, 1111 1111 给负数用了,所以负数比正数多一个.