概念
负数在计算机中以补码的形式保存,以int类型的-15为例,求补码先对-15取绝对值,然后对其按位取反(得到反码),然后加1,就可以得到其的补码。
二进制的补码
-15 (取绝对值)–> 15 --> (十六进制表示)0x000f (按位取反)
–> (反码)0xfff0 (加1得到补码)–> 0xfff1(补码)
十进制的补码
也可以另一种方式得到其补码值
-15 (转换为十进制)–> 0xffff - 15 +1于是得到了补码的十进制表示
后记
这里转换的值,都是以无符号类型的转换。如果是有符号类型,或者把补码转换为负数形式表达,补码减1,取反,得到对应的负数绝对值,然后加一个负号。