二进制数补码
1.1 作用
计算机中,使用二进制的补码形式表示带符号整数
1.2原码与补码之间的转换
一个二进制数如何转换为它的补码形式
1.2.1 正数原码与补码
原码→补码:
X = 0 000 0011
这是一个正数的原码表示,表示 3。
这里我们看一下模运算求正数补码的公式:
[X] = X + M ( mod M)
转换为补码后,[X] = 0 000 0011。可以看出正数的原码与补码一样。
所以,一个正数的补码表示的符号位为 0。以后求正数的补码可以直接将其原码写上。
补码→原码:
由上可知,正数补码与原码相同,即补码即原码
1.2.2 负数原码与补码
原码→补码:
X = 1 000 0011
这是一个负数的原码表示,表示 -3。
这里我们看一下模运算求负数补码的公式:
[X] = M + X ( mod M)
转换为补码后,[X] = 1 111 1101。
对比一下 X 与 [X]:
X = 1 000 0011
[X] = 1 111 1101
我们可以看到原码与补码的变化。
原码的 符号位为1不变,数值部分取反加1 后,得到补码。
补码→原码:
由上可知,原码的 符号位为1不变,数值部分取反加1 后,得到补码。
那么,将思路逆转一下,将补码 符号位为1不变,数值部分减一取反 后,得到原码。
除此之外,还有其他方法吗?❤❤❤
对比一下 [X] 与 X:
[X] = 1 111 1101
X = 1 000 0011
是不是似曾相识呢?
没错,补码的 符号位为1不变,数值部分取反加一 后,得到原码。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Guailper的博客!
