关于机器码、原码、反码、补码
机器码: 是机器能识别的形式,即0或1的形式,如00001111000011110000111100001111
一. 假设你的机器是8位的.
原码: 将机器码真值形式中的最高位用‘0’表示‘+’号, 用‘1’表示‘-’号,这种数码形式称为原码。
反码: 如果是正数,其反码和原码的形式相同;如果是负数,其反码为原码的数值部分按位取反,符号位保持不变
69-> 01000101
-69 :
原码: 1 1000101
反码: 符号位不变数值位取反: 1 0111010
补码:正数的补码和原码的形式相同。负数的补码等于除符号位之外的数字按位取反后加1
69的补码 0 1000101
-69:
原码: 1 1000101
取反: 1 0111010
补码: 1 0111011
补码运算时: 其符号位与数值部分一起参加运算
补码的符号位相加后,如果有进位出现,要把这个进位舍去
用补码运算,结果也为补码。在转换为真值时,若符号位为0,数位不变;若符号位为1,应将结果求补才是其真值
二. 假设你的机器是32位的
原码: 将机器码真值形式中的最高位用‘0’表示‘+’号, 用‘1’表示‘-’号,这种数码形式称为原码。
反码: 如果是正数,其反码和原码的形式相同;如果是负数,其反码为原码的数值部分按位取反,符号位保持不变
69-> 0 0000000 00000000 00000000 01000101
-69 :
原码: 1 0000000 00000000 00000000 01000101
反码: 符号位不变数值位取反: 1 1111111 11111111 11111111 10111010
补码:正数的补码和原码的形式相同。负数的补码等于除符号位之外的数字按位取反后加1
69的补码 0 0000000 00000000 00000000 01000101
-69:
原码: 1 0000000 00000000 00000000 01000101
取反: 1 1111111 11111111 11111111 10111010
补码: 1 1111111 11111111 11111111 10111011
补码运算时: 其符号位与数值部分一起参加运算
补码的符号位相加后,如果有进位出现,要把这个进位舍去
用补码运算,结果也为补码。在转换为真值时,若符号位为0,数位不变;若符号位为1,应将结果求补才是其真值