一、定点数的表示方法
(1)纯小数
乘以比例因子以满足定点数保存格式
(2)纯整数
小数点在后面
二、浮点数的表示方法
◆ 计算机处理的很大程度上不是纯小数或纯整数
◆ 数据范围很大,定点数难以表达
(1)浮点数的表示格式
科学计数法
𝑁 = 𝑆 × 𝑟j
S:尾数 r:基数 j:阶码
123450000000 = 1.2345 × 1011
1.2345:尾数 10:基数 11:阶码
11.0101 = 0.110101 × 210
11.0101 = 0.0110101 × 211
(2)浮点数的表示范围
假设阶码数值取m位,尾数数值取n位
𝑁 = 𝑆 × 𝑟𝑗
阶码能够表示的最大值: 𝟐𝒎 − 𝟏 −(𝟐𝒎 − 𝟏) 𝟐𝒎 − 𝟏
阶码表示范围: [−(𝟐𝒎 − 𝟏),𝟐𝒎 − 𝟏]
尾数能够表示的最大值: 𝟏 − 𝟐-n
尾数能够表示的最小值: 𝟐−𝒏
尾数表示范围: [𝟐−𝒏,𝟏 1− 𝟐−𝒏]
阶码表示范围: [−(𝟐𝒎 − 𝟏),𝟐𝒎 − 𝟏]
单精度浮点数
使用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
三、定点数与浮点数的对比
◆ 当定点数与浮点数位数相同时,浮点数表示的范围更大
◆ 当浮点数尾数为规格化数时,浮点数的精度更高
◆ 浮点数运算包含阶码和尾数,浮点数的运算更为复杂
浮点数在数的表示范围、精度、溢出处理、编程等方面均优于定点数
浮点数在数的运算规则、运算速度、硬件成本方面不如定点数