- 定点数的表示
- 无符号数
- 有符号数
- 机器数的定点表示
- 定点小数
- 定点整数
- 原码、反码、补码、移码
- 原码[X]~原~
- 纯小数原码
- 纯整数原码
- 反码[X]~反~(过渡码)
- 补码[X]~补~
- 定点整数
- 定点小数
- 移码
整个机器字长的全部二进制位为
数值位,没有符号位,相当于数的绝对值
e.g.机器字长为8位,则数的表示范围为0~28-1
二进制数的最高位为符号位0为正、1为负,将符号数值化
(符号数=符号位+有效数字)
符号数的机器表示有 原码、补码、反码、移码
X表示真值、[X]原、[X]补、[X]反、[X]移
约定机器数中小数点位置固定不变。
定点小数将小数点的位置固定在符号位之后、数据的最高位之前,
符号位与数值之间用小数点隔开
将小数点的位置固定在数据的最低位之后
符号位与数值之间用逗号隔开
X为真值,
若机器的字长为n+1位,尾数(数值的有效部分)为n位。
符号位+真值绝对值
若机器字长为n+1位,
原码整数的表示范围为 -(2n-1)~2n-1,
原码小数的表示范围为 -(1-2-n)~1-2-n
真值0:+0、-0两种形式(关于原点对称)
菜鸡笔记:负几次方,就是该数几次方的倒数
低位补零
+0.75D:+0.11B [x]原=0.1100000
-0.75D:-0.11B [x]原=1.1100000
高位补零
+19D: +10000B [x]原=0,0010000
-19D:-10000B [x]原=1,0010000
符号位为0(正数),反码与原码相同
符号位为1(负数),数值位全部取反,取反加1
e.g. X=+19D 机器字长为8
[X]原=0,0010011
[X]反=0,0010011
e.g. X=-0.75D 机器字长为8
[X]原=1.1100000
[X]反=.0011111
正数的补码=原码
负数的补码=反码末位+1(要考虑进位)取反加1
将负数补码转为原码的方法相同:为数取反,末位+1
补码的真值0:只有唯一一种表示形式
[+0]原=00000000、[-0]原=10000000
[+0]反=00000000、[-0]反=111111111
[+0]补=00000000、[-0]补=00000000
[X]原=1,0000000
[X]补=1,0000000,表示-27
若机器字长为n+1位,
则补码整数的表示范围==-2n~2n-1==(比原码整数多-2n)
[X]补=1.0000000,表示–1
若机器字长为n+1位,
则补码小数的表示范围==-1~1-2-n==(比原码整数多-1)
补码的基础上将符号位取反,只能表示整数
[X]移=2n+x(2n>x>=-2n,机器字长为n+1)
特性:
- 移码保持了数据原有的大小顺序,移码越大真值就大,移码越小真值就小。
- 移码全0时,对应真值的最小值为-2n,移码全1时,对应真值的最大值为2n-1
- 零唯一,[+0]移=-2n+0=[-0]移=2n-0=100···0
- 一个真值的移码和补码只差一个符号位。



