原码表示
原码 (True form): “符号 — 数值” 表示法,符号位 + 绝对值的真值
-
定点小数的原码定义:
-
定点整数原码定义:
例子:
-
纯小数情况下:
① 如果
X
是个正数,原码和它的真值一样。(0 <= X < 1
),将X
写成二进制数的话,必然是:0.XXX.....X 形式,这个必然是它的原码。
② 如果
X
是个负数,原码是它的绝对值|X| + 1
。(-1 < X <= 0
),X
的绝对值|X|
写成二进制数的话,必然是:0.XXX......X 形式,在这个基础上 + 1,就是将最高位制 1 。最高位是 1,刚好是负数。
-
纯整数情况下,用
n
位二进制数表示某个数的原码:① 如果
X
是正数,X
必然 (0 <= X < 2 ** (n-1)
或0 <= X <= 2 ** (n-1) - 1
),因为最高位是符号位。这里2 ** (n-1)
表示指数幂。② 如果
X
是负数,2 ** (n-1)
表示的就是最高位是 1,后面n-1
个0
,然后再+ |X|
,本质上就是 符号位 + 绝对值的真值。
原码的性质
- 带符号的绝对值表示,符号位为
0
,表示该数为 正, 符号位为1
, 表示该数为 负。 -
0
不唯一。 - 表示范围(机器字长为 n)
- 若字长为 n,总共有 2 ** n 个码点,但对应的真值只有 2 ** n - 1 个。
- 负数的原码大于正数的原码。
- 真值与原码之间的转换。