原码、反码、补码的简单转换

时间:2024-03-09 07:11:11

1、正数的原码、反码、补码是一样的

如+1011111(95)的原码、反码、补码为:

原码 0101 1111
反码 0101 1111
补码 0101 1111

2、负数的原码、反码、补码转换

以-1011111(-95)的原码、补码、反码的转换为例:

(1)负数原码、反码转换

符号位不变,数值位按位取反

原码转反码

原码 1101 1111
反码 1010 0000 //符号位不变,数值位按位取反

反码转原码

反码 1010 0000
原码 1101 1111 //符号位不变,数值位按位取反

(2)负数原码、补码转换

符号位不变,数值位按位取反,末位+1

原码转补码

原码 1101 1111
反码 1010 0000 //符号位不变,数值位按位取反
补码 1010 0001 //末位+1

快速求法为:

符号位不变,从右往左找第一个1,这个1左边的取反,右边的不变

补码转原码

补码 1010 0001 
1101 1110      //符号位不变,数值位按位取反为
原码 1101 1111 //末位+1

(3)负数反码、补码转换

反码转补码,末位+1;补码转反码,末位-1

反码转补码

反码 1010 0000 
补码 1010 0001 //末位+1

补码转反码

补码 1010 0001
反码 1010 0000 //末位-1

3、总结:

正数的原码、补码、反码都一样;

负数的原码、反码转换:符号位不变,数值位按位取反;

负数的原码、补码转换:符号位不变,数值位按位取反,末位+1,【快速求法为:符号位不变,从右往左找第一个1,这个1左边的取反,右边的不变】;

负数的反码、补码转换:反码转补码,末位+1;补码转反码,末位-1。