例如:short a;a能表示最大的2进制的数为:0111111111111111 = 32767能表示最大的负数为:1111111111111111 = -32768unsigned a;无符号能表示的最大数为:1111111111111111 = 65535还有无符号表示的最大值是正数加负数的?100000000000000 也就是说这个本来是代表-0的,但是正数里面也有个是正0,意义都一样.所以用负数的话全零就代表从-1开始?
3 回答

繁星coding
TA贡献1797条经验 获得超4个赞
-32768是 1000 0000 0000 0000
而 1111 1111 1111 1111表示的是-1。
至于你的问题,有个很好想的思路:
符号位是0的时候,能表示0~32767; 那加个负号的符号位,就可以表示-0~-32767。 由于我们0只需要一个,所以此时的-0就可以用来多表示一个更大的负数-32768了。
仅供理解,实际原因还是需要看补码的原理
- 3 回答
- 0 关注
- 146 浏览
添加回答
举报
0/150
提交
取消