无符号数
机器字长:寄存器的位数,反映无符号数的表示范围
无符号数:没有符号的数,在寄存器中的每一位均可用来存放数值
有符号数
机器数和真值
- 0表示正,1表示负
- 机器数:把符号数字化的数
- 真值:带“+”“-”符号的数
原码表示法
- 原码:带符号的绝对值表示。符号位 0表示正,1表示负,数值位为真值的绝对值。
- 整数的符号位和数值为之间用逗号隔开;小数的符号位与数值位之间用小数点隔开。
- 逗号和小数点在计算机中并不存储,原码是保存在计算机之中的
- 定义:
x 为真值,n为整数的位数
注意看x的范围,因此原码中0有两种形式
[ + 0 ] 原 = 0.0000 [+0]_原=0.0000 [+0]原=0.0000
[ − 0 ] 原 = 1.0000 [-0]_原=1.0000 [−0]原=1.0000
补码表示法
补数
- 负数可用正补数来替代,正补数可用模加上负数本身求得
- 正数和负数互为补数时,绝对值之和为模数
- 正数的补数为正数本身
定义
- 整数
x 为真值,n为整数的位数(不包含符号位)
[ + 0 ] 补 = [ − 0 ] 补 [+0]_补=[-0]_补 [+0]补=[−0]补
[ − 1 ] 补 = 1.0000 [-1]_补=1.0000 [−1]补=1.0000
-1没有原码表示
- 小数
求补码的快捷方式
- 当真值为负时,补码可用原码除符号位外,每位取反,末位加1
- 真值为正时,原码补码形式相同
反码表示法
通常用作由原码求补码或由补码求原码的中间过渡
定义
- 整数
- 小数
三种机器数的特点
- 最高位均为符号位
- 真值为正:原反补的表示形式均相同。符号位为0,数值部分与真值相同
- 真值为负:符号位都为1,数值部分补码是原码的求反加一,反码是原码的每位求反
移码表示法
- 定义
- 只有整数形式的定义:原因是移码的大小很好比较,通常情况下用移码表示浮点数的阶码,能够方便的判断浮点数的阶码大小
- 同一个真值的移码和补码仅差符号位。将补码的符号位由0改为1,或从1改为0,可得移码。
- 0的表示唯一
- 最小真值的移码全为0