是看着这篇文章学的
张子秋的博客(https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html)
原文写的很棒

机器数

计算机1,0组成, 电脑的最小存储单位是字节(Byte), 一个字节, 是由八位二进制位组成的)

+3转换为机器数 00000011
-3 转换为机器数 10000011

计算机使用最高位作为符号位, 第一位, 0为正, 1为负

真值

如果直接将 -3 的机器数 10000011 转换为十进制, 那么将是 131, (被称为_形式值_).
但我们也知道对的答案应该是-3, 所以-3是10000011的真值.

原码

嗯.. 上面说完了, 八位二进制原码的范围是
[11111111, 01111111]
也就是 [-127, +127]

反码 和 补码

  1. 正数的反码补码都是其本身
  2. 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反. 补码需+1
例子:

+1
[00000001]原
[00000001]反
[00000001]补

-1
[10000001]原
[11111110]反
[11111111]补

标签: 原码, 补码, 反码

添加新评论