计算机基础:17、二进制--定点数与浮点数
1、定点数表示方法
什么是定点数?
小数点固定在某个位置的数,称为定点数
下方两张图片展示了纯整数和纯小数的定点数表达
若不是纯小数也不是纯整数,这个时候就需要乘以一个比例因子以满足定点数保存格式,如:
10.02表示为:0.1002*10^2
2、浮点数表示方法
2.1、浮点数的表示格式
数学中的科学记数法
科学计数法要求尾数位于1到10之间,尾数大于10或者小于1都是非法的
计算机中的浮点数表示格式:
计算机表示浮点数时也跟科学计数法一样有尾数、基数、阶码的概念。
对于任意的浮点数N,都可以使用公式N = S * r^J
来表示,如下图:
2.2、浮点数的表示范围
浮点数的范围主要需要考虑阶码和尾数的值;
2.2.1、阶码的取值范围
假设阶码数值取m位,尾数数值取n位
:
阶码和尾数的数值取值如下图
2.2.2、尾数的取值范围
浮点数上溢:浮点数太大了,无法表示
浮点数下溢:浮点数太小了,小到浮点数都无法表示
单精度浮点数(float):使用4字节、32位来表达的浮点数
双精度浮点数(double):使用8字节、64位来表达的浮点数
2.3、浮点数的规格化
浮点数对于尾数的要求:
尾数规定必须使用纯小数
尾数最高位必须是1
3、定点数与浮点数对比
- 当定点数与浮点数位数相同时,
浮点数表示的范围更大
- 当浮点数尾数为规格化数时,
浮点数的精度更高
- 浮点数运算包含阶码和尾数,
浮点数的运算更为复杂
- 浮点数在数的表示范围、精度、溢出处理、编程等方面均优于定点数
- 浮点数在数的运算规则、运算速度、硬件成本方面不如定点数
定点数一般使用在成本比较低的芯片里面