
C语言:关于有符号整型变量范围的问题
为什么有符号整形变量的范围是-32768~32767而不是-32767~32767呢?在TC系统下,一个有符号整型变量占两个字节,即有16个2进制位。除去第一位表示正负,...
为什么有符号整形变量的范围是-32768~32767 而不是-32767~32767呢?
在TC系统下,一个有符号整型变量占两个字节,即有16个2进制位。
除去第一位表示正负,剩下15为所能表示的最大值应为32767(2的15次方减1),那么加上符号后的范围不应该是-32767~32767吗?-32768是如何得出来的? 展开
在TC系统下,一个有符号整型变量占两个字节,即有16个2进制位。
除去第一位表示正负,剩下15为所能表示的最大值应为32767(2的15次方减1),那么加上符号后的范围不应该是-32767~32767吗?-32768是如何得出来的? 展开
1个回答
展开全部
15位所能表达的数是 0--32767 总共 32768个数
加一个符号位 正的 0--32767
负的 0的最高位加一个1 可不是 -0 而是 -32768
负数用补码方式存储 FFFF表示-1 从FFFF到8000也是总共32768个数 也就是 -1 到 -32768
-32768--- -1 0 ----32768 16位 总共 65536个数
加一个符号位 正的 0--32767
负的 0的最高位加一个1 可不是 -0 而是 -32768
负数用补码方式存储 FFFF表示-1 从FFFF到8000也是总共32768个数 也就是 -1 到 -32768
-32768--- -1 0 ----32768 16位 总共 65536个数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询