关于机器码、原码、反码、补码

机器码:   是机器能识别的形式,即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,应将结果求补才是其真值 

posted on 2019-09-19 21:28  车小车  阅读(4211)  评论(0编辑  收藏  举报