【目录】
1. 浮点数的概念
2. 浮点数的表示
3. 浮点数与浮点数之间的运算过程
4. 浮点数特点
5. 真题回顾
6. 总结
【正文】
1. 浮点数的概念
浮点数是小数点位置不固定
的数。
【示例】
1.23*10^4
= 12.3*10^3
小数点的位置可以移动,因此是浮点数。
当机器字长为n时:
定点数的补码和移码可表示2^n
个数。
定点数的原码和反码只能表示2^(n-l)
个数(0的表示占用了两个编码)。
因此,定点数所能表示的数值范围比较小,在运算中很容易因结果超出范围而溢出。
浮点数是小数点位置不固定的数,它能表示更大范围的数
。
2. 浮点数的表示
【表示】
N = 尾数 * 基数^指数
指数也称为阶数。
计算机采用二进制,因此计算机中的基数通常是2
。
【十进制示例】
1.23*10^4
中:
尾数 = 1.23 基数 = 10 指数 =阶数= 4
【二进制示例】
1011.10101B= 0.101110101*2^4=0.0101110101*2^5
二进制中:
小数点向左移4位,则乘以2^4
。(这里的2就等同于10进制中的10)
小数点向左移5位,则乘以2^5
。
计算机采用二进制,因此计算机中的基数通常是2
。0.101110101*2^4
中:
尾数 = 0.101110101 基数 = 2 指数 =阶数= 4
3. 浮点数与浮点数之间的运算过程
对阶:将阶数统一成一个数,对阶时, 小阶向大阶看齐
。
尾数计算
结果格式化
【目标任务】
计算1.23*10^4
+ 2.3*10^2
【思路分析】
对阶
阶数有2个,一个是4,一个是2。
对阶时,小阶向大阶看齐
,因此将2变成4。
即2.3*10^2
=0.023*10^4
。
尾数计算 (1.23+0.023)*10^4
4. 浮点数特点
在浮点表示法中,阶码为带符号的纯整数,尾数为带符号的纯小数。
浮点数的表示格式如下:
N = 尾数 * 基数^阶码中工业标准IEEE 754中一般尾数用原码,阶码用移码
。
阶码的位数决定数的表示范围
,位数越多范围越大
。
尾数的位数决定数的有效精度
,位数越多精度越高
。
对阶时,小数向大数看齐
。
对阶时通过较小数的尾数右移
实现的。
0.23变成0.023,尾数是向右移动的。
5. 真题回顾
【例题1】
对于长度相同但格式不同的两种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其他规定都相同,则二者可表示数值的范围和精度情况为( )。
A.二者可表示的数的范围和精度相同
B.前者所表示的数的范围更大且精度更高
C.前者所表示的数的范围更大但精度更低
D.前者所表示的数的范围更小但精度更高
【思路解析】
长度相同表示比特位数相同。
阶码、尾数不一致则范围和精度不会相同,A选项错误。
大家观察答案,考的都是前者,因此我们不用去分析后者。
阶码长表示范围大,因此D选项错误。
尾数长表示精度高,尾数短则精度低,因此B选项错误。
正确答案:C
【例题2】
浮点数的表示分为阶和尾数两部分。两个浮点数相加时,需要先对阶,即( )(n为阶差的绝对值)。
A.将大阶向小阶对齐,同时将尾数左移 n 位
B.将大阶向小阶对齐,同时将尾数右移 n 位
C.将小阶向大阶对齐,同时将尾数左移 n 位
D.将小阶向大阶对齐,同时将尾数右移 n 位
【思路解析】
对阶时小阶向大阶看齐,因此AB错误。
对阶时尾数是向右移的。因此C选项错误。
正确答案:D
【例题3】
某种机器的浮点数表示格式如下(允许非规格化表示)。若阶码以补码表示,尾数以原码表示,则1000100000000001表示的浮点数是()。
【思路解析】
A.(2^(-10))*(2^(-16))
B.(2^(-10))*(2^(-15))
C.(1-2^(-10))*(2^(-16))
D.(1-2^(-10))*(2^(-15))
某种机器则表示基数=2
规格化表示的浮点数是,前面是尾数,后面是阶数。
非规格化表示意思是尾数和阶数的前后的顺序与上面的不一致。
阶数=补码
尾数=原码
根据上述图片可知,前5位为阶码:
阶码=补码=10001,然后求出该码的原码:
原码:11111
反码:10000(取反得原码)
补码:10001(减1得反码)
然后将原码转换为10进制数:
原码:11111=-(2^3+2^2+2^1+2^0)= -(8+4+2+1)=-15
即阶数=-15
剩下的11位为尾数。
即尾数=原码=00000000001
注意尾数是小数
,最高位0表示是正数。
00000000001转换成十进制是2^(-10)
该浮点数= (2^(-10))*(2^(-15))
正确答案:B
【例题4】
浮点数能够表示的数的范围是由其()的位数决定的。
A.尾数
B.阶码
C.数符
D.阶符
尾数越长精度越高,阶码越长范围越大。
正确答案:B
【例题5】
设16位浮点数,其中阶符1位、阶码值6位、数符1位、尾数8位。若阶码用移码表示,尾数用补码表示,则该浮点数所能表示的数值范围是( )。
A.-2^64~(1-2^(-8))*2^64
B.-2^63~(1-2^(-8))*2^63
C.-2^64~(1-2-(1-2^-8)*2^64~(1-2^-8)*2^64
D.-(1-2^(-8))*2^63~(1-2^(-8))*2^63
【思路解析】
阶数是整数:
n=4时,移码能表示的最大整数是7=2^3-1=2^(n-1)-1
n=4时,移码能表示的最小整数是-8=-2^3=2^(-n-1)
阶码=移码=7位(有1位是符号位):
能表示的最大值是2^6-1=64-1=63
能表示的最小值是-2^6=-64
尾数是小数:
n=4时,补码能表示的最大定点小数是1-2^(-3)
n=4时,补码能表示的最小定点小数是-1
尾数=补码=9位(有1位是符号位)
n=9时,补码能表示的最大定点小数是1-2^(-8)
n=9时,移码能表示的最小定点小数是-1
因此该浮点数
能表示的最小数为-2^63
。
能表示的最大数是(1-2^(-8))*2^63
。
正确答案:B
6. 总结
【小结】
【章节总结】