计算机中的原码、反码、补码

计算机常见数据的分类

  • 数值类型
  • 非数值类型

机器数和机器数的真值

  • 在机器数中,使用最高位来表示数字的正负;1为负,0为正;一个字长为8位
  • 机器数的真值就是机器数所对应的真正的数值,例:1000 1101=-13,0000 1101=13

为什么需要反码和补码

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

原码

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

反码

  • 正数:正数的反码和原码相同,例: +3 0000 0011【原码】=0000 0011【反码】
  • 负数:符号位不变,其余各位直接取余,二进制只有两种状态,1-->0,0-->1

补码

  • 正数:正数的原码、反码和补码全部相同,例: +3 0000 0011【原码】=0000 0011【反码】=0000 0011【补码】
  • 负数:求得原码,再求反码,然后在最后一位+1

补码转原码

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

反码转原码

  • 正数:不变
  • 负数:符号位不变,其余各位取反
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容