其他分享
首页 > 其他分享> > 原码、反码、补码、移码之间的转换

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

作者:互联网

符号位即八位字符的第一位,1为负,0为正。
原码:取绝对值
反码:符号位0表示正,1表示负,正数的反码等于原码。负数的反码等于原码按位数取反,(绝对值按位求反)
步骤:先将这个负数化为原码,再根据原码取反。比如该负数原码是:0 0000001,那么它取反就是0 1111110
补码:符号位0表示正,1表示负,正数的补码等于原码。负数的补码等于反码末位加1,
步骤:先将这个负数化为原码再化为反码,末位加1。比如该负数的反码是1 1111110,那么它末位加1就是1 1111111
移码:等于补码的符号(第一位数字)位取反。
步骤:先把这个数化为补码,然后再根据补码的第一位数字取反即可。(移码和补码的关系:同一数值的移码与补码符号位相反,其它各位相同。)
总结:
正数的原码,补码,反码相同;
负数的反码:原码的数值取反;
负数的补码:原码转换成反码,反码末位加1
负数的移码:与补码的符号位(第一位数字)相反
已知补码求原码:
最高位如果是1的话(负数),那么除了最高位之外的取反,然后加1得原码。
最高位如果是0的话,不变,正数的补码就是他的原码。
R进制转化为十进制,用乘法。(*R多少次方)
十进制转化为R进制,用取余法。(余数从下往上写)

标签:反码,补码,取反,负数,移码,原码
来源: https://blog.csdn.net/cai_4/article/details/120556211