4.浮点数——软件设计师的学习笔记
包含在主题中
软件设计师
【目录】
1.浮点数的概念
2. 浮点数的表示
3、浮点数之间的算术处理
4. 浮点数的特点
5、真题复习
六、总结
[文本]
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)
将小数点向左移动5 位,然后乘以2^5。
计算机使用二进制数,因此计算机的基数通常为2。
0.101110101*2^4:
尾数=0.101110101 底数=2 指数=度数=43. 浮点数与浮点数之间的算术处理
对齐步骤:将步骤统一为一个数字。对齐台阶时,较小的台阶应与较大的台阶对齐。
尾数计算
结果格式【目标任务】
计算1.23*10^4 + 2.3*10^2。
【思路分析】
相反的顺序
有两种订单,一种是4 个,另一种是2 个。
当您匹配级别时,次要级别与主要级别对齐,因此2 变为4。
即2.3*10^2=0.023*10^4。
尾数计算
(1.23+0.023)*10^44 浮点数的属性在浮点表示中,指数是有符号的纯整数,尾数是有符号的纯十进制数。
浮点数的表示格式如下:
1N=尾数* 基数^ 代码
行业标准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]
给定机器的浮点表示格式如下(非规范化表示也是可能的):用补码表示指数代码,用原代码表示尾数为1000100
000000001表示的浮点数是()。
2【思路分析】
A.(2^(-10))*(2^(-16))
B.(2^(-10))*(2^(-15))
C.(1-2^(-10))*(2^(-16))
D.(1-2^(-10))*(2^(-15))
有些机器显示基数=2。
通过标准化表示的浮点数前面是尾数,后面是顺序。
非规范化是指尾数的顺序和顺序与上面不一致。
顺序=补数
尾数=原始代码
根据上图,您可以看到前5位数字是代码。
展开code=补code=10001,求出code的原码。
原码:11111
负码:10000(反向得到原码)
补码:10001(减1得到补码)
接下来,将原始代码转换为十进制:
原代码: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
六、总结【总结】
[章节总结]
4第一章计算机系统1