附录A:原码、反码和补码

2018-07-16  本文已影响0人  秋的懵懂

时间:2018-07-16 作者:魏文应


一、正数和负数的表示方法

我们知道,正数和它的相反数相加时,会等于0,比如 1 + (-1) = 0, 33 + (-33) = 0。使用二进制,我们可以暂时规定,最高位是0 表示是正数, 最高位是1 表示负数:

二、为什么需要补码?

我们有下面假设:

上面两个例子, 7 + (-7) = 0 = 1001 11101 + (-1) = 0 = 1000 0010 。我们发现,同样表示0,二进制的结果不一样。这当然不是我们想要的,我们希望二进制相加的0的结果一直是 0000 0000。下面我们换个思路来表示数值:

0111 0000 取反就是 1000 1111,把 0011 0000 取反就是 1100 1111,我们发现,都会有一个 独一无二 的反码和原码对应。也就意味着补码也是独一无二的:

上一篇下一篇

猜你喜欢

热点阅读