欢迎光临散文网 会员登陆 & 注册

补码的简单理解

2023-03-04 21:20 作者:驻b站某知名打工人  | 我要投稿

 在计算机里面,数据的加减是通过补码的形式来运算的

这里我先不用二进制的方式讲解,而是用我们常见的十进制来理解补码:

假如现在有一个数字6,想要减去2, 正常做法是:6-2=4

现在我们来还一种思路,6减去2可以理解成什么?

现在假设有一个带刻度的圆盘A,A的12点位置写上“9”,其他位置均匀地写上1,2,3...

在6的位置上方一个小石子。

那么6减去2可以理解成:小石子往后退两位,放到“4”的位置

那如果我偏要前进呢,前进多少个可以轮回到“4”的位置呢?

想象一下就知道,向前走7位也能到“4”的位置,这个7就是2在这个规则下的补码

于是6-2可以用6+7来表示,好神奇哇?

也就是,4等价13,5等价14,6等价15,有规律了把

4就是13的个位数+1

5就是14的个位数+1...

剩下的就自己理解咯;;;

对应于二进制也是一样的原理啦

一个负数的补码就是这个数的绝对值的二进制的每个位取反加一

其实取反后本质上就是真正意义上的补码(我自己的理解),因为取反后的二进制和取反前的 相加刚好等于0, 不就很“补”了吗,加一是为了扔调最前面的进位,就像前面的圆盘,不要了十位数


补码的简单理解的评论 (共 条)

分享到微博请遵守国家法律