原码、反码、补码的区别和运算

2023-10-20 16:28:00 浏览数 (1)

在计算机内部,负数都是以补码方式存在的。正数的原码、反码、补码都是一样的。而负数的源码、反码、补码略有不同,具体的计算方法如下:

7的原码、反码、补码如下

代码语言:javascript复制
0000 0111 //byte
0000 0000 0000 0111 //word
0000 0000 0000 0000 0000 0000 0000 0111 //dword

-7的原码最高位是符号位,修改为1即可

代码语言:javascript复制
1000 0111 //byte
1000 0000 0000 0111 //word
1000 0000 0000 0000 0000 0000 0000 0111 //dword

-7的反码是除符号位以外全部取反

代码语言:javascript复制
1111 1000 //byte
1111 1111 1111 1000 //word
1111 1111 1111 1111 1111 1111 1111 1000 //dword

-7的补码在反码的基础上 1

代码语言:javascript复制
1111 1001 //bit
1111 1111 1111 1001 //word
1111 1111 1111 1111 1111 1111 1111 1001 //dword
F    F    F    F    F    F    F    9//0xFFFFFFF9

最后运算的结果-7的十六进制是0xFFFFFFF9,我们也可以在程序中测试一下。

0 人点赞