作业帮 > 综合 > 作业

为什么C语言中 整形变量的取值范围下限比上线绝对值大一啊?

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/25 18:32:13
为什么C语言中 整形变量的取值范围下限比上线绝对值大一啊?
为什么C语言中 整形变量的取值范围下限比上线绝对值大一啊?
c语言中int是2个字节也就是十六位; 而你说的是又符号整形,最高位是符号位,所以int上限只能是前面十五位全为1,我们为了求的方便就加上一则变成了最高位上是1,其他都为零,我们就这么计算2^15-1,这是上限,下限的规则要求该数的绝对值的二进制形式按位取反加1,而最高位是1后面十五位是零则是-32768形式就是2^15,这是下限.
也许你会问为什么那是-32768的补码形式,你那就要知道最高位是0表示整数,本来上面所说的最高位为零后面全为1是int整数的上限,而负数就不同了它可以在这个基础上加一的那最高位成了1表示负数因此是2^15,上限减1是因为加一后最高位成了1,表示负,溢出了,所以要减1这就是上限;
好了慢慢体验吧,其实我们学c语言不用卡这些东西,没多大用处,你还是多了解教程中c编程的思想,