C语言:关于有符号整型变量范围的问题为什么有符号整形变量的范围是-32768~32767 而不是-32767~32767呢?在TC系统下,一个有符号整型变量占两个字节,即有16个2进制位.除去第一位表示正负,剩下15

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 01:27:33
C语言:关于有符号整型变量范围的问题为什么有符号整形变量的范围是-32768~32767 而不是-32767~32767呢?在TC系统下,一个有符号整型变量占两个字节,即有16个2进制位.除去第一位表示正负,剩下15

C语言:关于有符号整型变量范围的问题为什么有符号整形变量的范围是-32768~32767 而不是-32767~32767呢?在TC系统下,一个有符号整型变量占两个字节,即有16个2进制位.除去第一位表示正负,剩下15
C语言:关于有符号整型变量范围的问题
为什么有符号整形变量的范围是-32768~32767 而不是-32767~32767呢?
在TC系统下,一个有符号整型变量占两个字节,即有16个2进制位.
除去第一位表示正负,剩下15为所能表示的最大值应为32767(2的15次方减1),那么加上符号后的范围不应该是-32767~32767吗?-32768是如何得出来的?

C语言:关于有符号整型变量范围的问题为什么有符号整形变量的范围是-32768~32767 而不是-32767~32767呢?在TC系统下,一个有符号整型变量占两个字节,即有16个2进制位.除去第一位表示正负,剩下15
15位所能表达的数是 0--32767 总共 32768个数
加一个符号位 正的 0--32767
负的 0的最高位加一个1 可不是 -0 而是 -32768
负数用补码方式存储 FFFF表示-1 从FFFF到8000也是总共32768个数 也就是 -1 到 -32768
-32768--- -1 0 ----32768 16位 总共 65536个数