一、概念清单
-
机器数
-
真值
-
原码
-
反码
-
补码
二、概念详解
1. 机器数
-
机器数是一个数在计算机中的二进制表示形式。
-
机器数带符号,最高位存放,正数为0,负数为1。
十进制数+3,计算机字长为8位的话,转换二进制为00000011 十进制数-3,计算机字长为8位的话,转换二进制为10000011 上述这两个二进制就是机器数。
2. 真值
-
由于符号位的存在,机器数不等于真值。
-
带符号的机器数,真正的数值。
-3是真值,它的机器数是10000011(其形式值为131(十进制))
3. 原码
-
原码是符号位加上真值的绝对值,即第一位为符号位,其余位表示值。
十进制数+1原码为 00000001 十进制数-1原码为 10000001
-
因为第一位是符号位,所以8位二进制的取值范围为:
[11111111,01111111]
即
[-127,127]
-
原码是人脑最容易理解和计算的编码方式。
-
无符号数用原码。
4. 反码
-
正数的反码是其本身。
-
负数的反码是其原码基础上,符号位不变,其余各位取反。
[+1] = [00000001]【原】 = [00000001]【反】 [-1] = [10000001]【原】 = [11111110]【反】
-
反码不容易被人脑直接看出真值,通常需要转换成原码
5. 补码
-
正数的补码是其本身。
-
负数的补码是其原码的基础上,符号位不变,其余各位取反,最后+1。
[+1] = [00000001]【原】 = [00000001]【反】 = [00000001]【补】 [-1] = [10000001]【原】 = [11111110]【反】 = [11111111]【补】
-
补码不容易被人脑直接看出真值,通常需要转换成原码
-
计算机中,有符号数采用补码