原码 反码 补码

原码 反码 补码

数据的常用分类

原码 反码 补码_第1张图片

机器数和机器数的真值

  • 在计算机中所有的数据都是以而今只保存的
  • 在机器数中,是用最高位来表示数字的正负;1为负,0为正;一个字长为8位
  • 机器数的真值就是机器数所对应的真正数值;
    • 1000 1101=-13 000 1101为真值

原码

  • 符号位:首先确定一个数的正负,如果是正数,首位使用0表示,如果是负数,首位就用1表示;
  • 有效位:真值得绝对值转化为二进制形式
  • 将符号位和有效位拼接到一起

反码

  • 正数:正数的反码和原码相同
  • 负数:符号位不变 ,其他位直接取反 ,二进制只有两种状态,1和0(1变0,0变1);

补码

  • 正数:正数的原码反码补码全部相同
  • 负数:求原码,再求反码,在最后一位+1

为什么需要反码和补码

  • 反码:在涉及计算机的时候只设计了加法器,没有减法器,使用加法器计算来表示减法
  • 补码:反码解决了没有减法器的问题,但是会出现正负相加0表示不唯一,使用补码进行修正。

补码转原码

  • 正数:补码=反码=原码
  • 负数:补码的补码,首位不变,其余取反,再加1;

反码转原码

  • 正数:不转
  • 负数:符号位不变,其他位取反

你可能感兴趣的:(补码)