数的机器码表示(原码 反码 补码 移码)

首先区分两个概念:真值机器码

  • 真值:一般书写的数
  • 机器码:机器中表示的数

为了解决在计算机内部数的正、负符号和小数点运算问题,而产生了把符号位和数值位一起编码来表示相应的数的表示方法,如原码,反码,补码,移码

1.原码
  • 表示方法:符号位 + 二进制数的绝对值
  • 符号位:0为正,1为负,有+0-0之分
正数:0+二进制数
负数:1+二进制数
  • 特点:表示简单,易于同真值之间进行转换,实现乘除运算规则简单。但进行减运算十分麻烦
  • 例子:3的二进制数是11,则+3的原码是011,-3的原码是111
  • 使用原码做减法( 11=0 1 − 1 = 0 )
    11=1+(1)=[00000001]+[10000001]=[10000010]=2 1 − 1 = 1 + ( − 1 ) = [ 00000001 ] 原 + [ 10000001 ] 原 = [ 10000010 ] 原 = − 2
    结果错误
2.反码
  • 表示方法:正数的表示与原、补码相同. 负数的反码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。
  • 符号位:0为正,1为负,有+0-0之分
正数:0+二进制数
负数:1+二进制数按位取反
  • 特点:为求补码提供便利
  • 例子:3的二进制数是11,则+3的反码是011,-3的反码是100
  • 使用反码做减法( 11=0 1 − 1 = 0 )
    11=1+(1)=[00000001]+[10000001]=[00000001]+[11111110]=

你可能感兴趣的:(#,计算机组成原理,机器码,原码,补码,移码,反码)