【计算机组成原理】16-定点数与浮点数

一、定点数的表示方法

(1)纯小数

乘以比例因子以满足定点数保存格式
【计算机组成原理】16-定点数与浮点数
【计算机组成原理】16-定点数与浮点数

(2)纯整数

小数点在后面
【计算机组成原理】16-定点数与浮点数

二、浮点数的表示方法

◆ 计算机处理的很大程度上不是纯小数或纯整数
◆ 数据范围很大,定点数难以表达

(1)浮点数的表示格式

科学计数法

???? = ???? × ????j
S:尾数 r:基数 j:阶码

123450000000 = 1.2345 × 1011

1.2345:尾数 10:基数 11:阶码

11.0101 = 0.110101 × 210
11.0101 = 0.0110101 × 211
【计算机组成原理】16-定点数与浮点数

(2)浮点数的表示范围

假设阶码数值取m位,尾数数值取n位

???? = ???? × ????????

阶码能够表示的最大值: ???????? − ???? −(???????? − ????) ???????? − ????

阶码表示范围: [−(???????? − ????),???????? − ????]

尾数能够表示的最大值: ???? − ????-n

尾数能够表示的最小值: ????−????

尾数表示范围: [????−????,???? 1− ????−????] 【计算机组成原理】16-定点数与浮点数
阶码表示范围: [−(???????? − ????),???????? − ????]
【计算机组成原理】16-定点数与浮点数
【计算机组成原理】16-定点数与浮点数

单精度浮点数

使用4字节、32位来表达浮点数(float)

双精度浮点数

使用8字节、64位来表达浮点数(double)

(3)浮点数的规格化

尾数规定使用纯小数
尾数最高位必须是1

正确:
11.0101 = 0.110101 × 210

错误:
11.0101 = 0.0110101 × 211 ×
11.0101 = 0.00110101 × 2^100 ^ ×
11.0101 = 1.10101 × 21 ×

例子1:

设浮点数字长为16位,阶码为5位,尾数为11位,将十进制数 13 /128表示为二进制浮点数。

原码 =反码=补码:???? = 0.0001101000

浮点数规格化:???? = 0.1101000 ∗ 2−11

尾数符为 0 尾数为 1101000000

阶符为1 阶码为0011

三、定点数与浮点数的对比

◆ 当定点数与浮点数位数相同时,浮点数表示的范围更大
◆ 当浮点数尾数为规格化数时,浮点数的精度更高
◆ 浮点数运算包含阶码和尾数,浮点数的运算更为复杂

浮点数在数的表示范围、精度、溢出处理、编程等方面均优于定点数
浮点数在数的运算规则、运算速度、硬件成本方面不如定点数