您的位置:首页 > 其它

使用二进制补码表示二进制负数方法合理性的证明

2016-10-03 18:26 302 查看

使用二进制补码表示二进制负数方法合理性的证明

目录

使用二进制补码表示二进制负数方法合理性的证明
二进制补码的定义

补码与反码的关系
定理 1

计算机中二进制负数
定理2

注释

二进制补码的定义

对k位的二进制数M的十进制值,我们可以表示为1

M=ak−12k−1+ak−22k−2+...+a121+a020M=ak−12k−1+ak−22k−2+...+a121+a020

其中 ai=0或1ai=0或1

或采取更为紧凑的形式

M=∑i=0k−1ai2iM=∑i=0k−1ai2i

则我们把补码定义为

M补=2k−MM补=2k−M

而原来的M称为原码

补码与反码的关系

定义二进制数M的反码

M反=∑i=0k−1Ai2iM反=∑i=0k−1Ai2i

其中2

Ai={0,1,ai=1ai=0Ai={0,ai=11,ai=0

事实上,反码即为原码所有位数上 0 变成 1 ,1 变成 0 。

这里有一个显然的性质:原码加反码得数所有k个数位上全是1;若此时往原码加反码的得数上加 1 ,则刚好进到2k2k上。于是我们得到公式

M+M反+1=2kM+M反+1=2k

自然得到一下定理:

定理 1

补码等于反码加一

证:因为

M+M补=2kM+M补=2k

M+M反+1=2kM+M反+1=2k

显然M补=M反+1M补=M反+1

计算机中二进制负数

现在讨论计算机中二进制负数的储存。我们给出以下定理

定理2

在k位储存系统中,可以用负数绝对值的补码代替负数,使其在满足k位储存系统中的加法规律。

证:利用定理一

设我们需要储存正数M的负值:- M

M+M反+1=2kM+M反+1=2k

然而第 2k2k 位(即第 k+1 位)不能被储存,剩下M+M反+1=0M+M反+1=0

所以−M=M反+1−M=M反+1

因此M反+1M反+1即为M的加法逆(负数)

于是计算机中在小于 2k2k 位的内存内(所谓的不“溢出”)我们可以用负数绝对值的补码代替负数。

注释

为了方便表述和理解,我们在整篇文章中都将采用值相同十进制数来表示二进制数,如M写成二进制即为:ak−1ak−2...a1a0ak−1ak−2...a1a0

如k=4(4位),a3=0,a2=1,a1=1,a0=1k=4(4位),a3=0,a2=1,a1=1,a0=1

二进制数即为0111
比如0111的反码为1000

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: