原码反码补码

原码、反码、补码

  • 计算机中常见数据的分类
  • 机器数&真值
  • 原码
  • 反码
  • 补码
  • 扩展

计算机中常见数据的分类

  • 数值类型
  • 非数值类型

机器数

数值在计算机中的二进制表示形式

机器数是带有符号的,最高位是符号位。==0正1负==

一个数据的第一位为符号位,剩余为有效位

+3 0000 0011

真值

机器数所对应的二进制真正的数值

0000 0011 = +3

原码

符号位加上真值的绝对值

正数:符号位 有效位

0010 0010—>34

1010 0111—>-39

1011 0111—>-55

反码

正数:正数的反码等于原码

负数:符号位不变,其余取反

原码 1011 0001—>-49

反码 1100 1110

原码 1010 0100—>-36

反码 1101 1011

补码

正数:正数的原码=反码=补码

负数:负数的补码是反码+1

扩展

为什么需要反码和补码?

在设计计算机时,只设计了加法器,没有设计减法器

反码解决了没有减法器,但0的结果不唯一

补码解决了所有问题

使用补码计算

补码转原码

补码的补码

符号位不变,其余取反加1

0000 0000 0000 0000

1000 0000 1000 0000

1111 1111 0111 1111

0000 0000 0000 0001

1111 1111 1000 0000

1000 0000=-128[补码]

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。