原码、反码、补码、移码之间的转换

原码:取绝对值

反码:符号位0表示正,1表示负,正数的反码等于原码。负数的反码等于原码按位数取反,(绝对值按位求反)

步骤:先将这个负数化为原码,再根据原码取反。比如该负数原码是:0 0000001,那么它取反就是0 1111110

补码:符号位0表示正,1表示负,正数的补码等于原码。负数的补码等于反码末位加1,

步骤:先将这个负数化为原码再化为反码,末位加1。比如该负数的反码是1 1111110,那么它末位加1就是1 1111111

移码:等于补码的符号(第一位数字)位取反。

步骤:先把这个数化为补码,然后再根据补码的第一位数字取反即可。(移码和补码的关系:同一数值的移码与补码符号位相反,其它各位相同。)

总结:

正数的原码,补码,反码相同;

负数的反码:原码的数值取反;

负数的补码:原码转换成反码,反码末位加1

负数的移码:与补码的符号位(第一位数字)相反

已知补码求原码:

最高位如果是1的话(负数),那么除了最高位之外的取反,然后加1得原码。

最高位如果是0的话,不变,正数的补码就是他的原码。

R进制转化为十进制,用乘法。(*R多少次方)

十进制转化为R进制,用取余法。(余数从下往上写)

猜你喜欢

转载自blog.csdn.net/weixin_44517301/article/details/93890346