梁越

负数的二进制表示

0 人看过

进制盲点

负数的二进制

我们都知道怎么一个正的十进制数的二机制转换采用<除10取余法>,就是一直除10然后取余数,直到除数为0,然后把余数倒过来

但是负数的二进制呢,其实就是其正数的二进制<原码>的<反码>+1,实际操作下-8的二进制:

首先计算8的二进制,如下:

8 -> 0000 0000 0000 1000

-8 -> 1000 0000 0000 1000 (因为首位表示正负,负数该位为1,得到原码)

1000 0000 0000 1000 -> 1111 1111 1111 0111 (取反码,除了符号位,原码其余取反)

1111 1111 1111 0111 -> 1111 1111 1111 1000 (补码,反码+1)

所以-8的二进制表示就出来了