美文网首页
8位有符号数的取值范围下限为什么是-128?

8位有符号数的取值范围下限为什么是-128?

作者: 佳黛 | 来源:发表于2020-09-14 10:08 被阅读0次

        每一本计算机教材在讲到有符号数的取值范围的时候,都从没有讲过上下限如何确定的。很多同学学了很多年的计算机,只是简单的记住8位有符号数的取值范围是-128-127。有同学深究为什么不是-128-127或者-127-127?

1. 什么是有符号数

简单说就是区分正负数。

2. 计算机如何表示有符号数?

      计算机只能识别0,1代码,在计算机内部表示为高、低电平。所以计算机为了识别正负数,就让最高位来表示数的正负,即最高位为符号位。例如:

十进制的2在计算机内部为:0000 0010

十进制的-2在计算机内部如何表示呢?——用补码表示。

补码求解方式:先取绝对值,然后各位按位求反,最后加1.

-2的二进制可以表示为:1000 0010

取绝对值后:0000 0010

按位求反:1111 1101

补码:1111 1110(-2的补码)

在计算机内部存储为-2的补码:1111 1110

注意:正数的补码是自身,负数的补码求解:先取绝对值,然后各位按位求反,最后加1.

为什么计算机用补码表示负数?——留给大家去探索。

3. 8位有符号数的取值范围下限为什么是-128?

上限容易理解:0111 1111,最高位0表示正数,故为127.

下限不是应该是1111 1111吗?-127.   ——对不起,你忘了计算机内部存储的是-127的补码,所以计算机内部表示为:1000 0001(-127的补码)。你是不是发现还可以减1?为1000 0000。注意1000 0000是补码哦。                                                             (1)

-127-1=-128。

我们来算算-128的补码是多少?

先取绝对值128,1000 0000,按位求反:0111 1111   再加1:1000 0000.和(1)的推导正好相符。

所以8位有符号数的取值范围下限是-128.

相关文章

网友评论

      本文标题:8位有符号数的取值范围下限为什么是-128?

      本文链接:https://www.haomeiwen.com/subject/ciemektx.html