例:0x8c4-0xf30
思路:
十进制:直接加减
十六进制:先转2进制,负数转补码,运算后再转成16进制
0x8c4-0xf30 == (0x8c4)+(-0xf30)
(0x8c4)+(-0xf30)==> 补码相加
正数的补码是本身,负数的补码是反码+1
所以:
0x8c4补码(2进制)是:
0000,0000,0000,0000,0000,1000,1100,0100
-0xf30
原码:0000,0000,0000,0000,1000,1111,0011,0000
反码:1111,1111,1111,1111,1111,0000,1100,1111
补码:1111,1111,1111,1111,1111,0000,1101,0000
0x8c4补码+-0xf30补码:
0000,0000,0000,0000,0000,1000,1100,0100
+
1111,1111,1111,1111,1111,0000,1101,0000
=
1111,1111,1111,1111,1111,1001,1001,0100
=
0xFFFFF994