计算机基础专升本-浮点数
该部分内容对于专升本考试来说通常不会涉及,大家应该以了解为主,不用深究。部分同学问到了,故而编写本篇文章进行介绍,不想去了解的同学暂时无需去深入学习该部分内容。
一、什么是浮点数
浮点数是与定点数相对的概念,计算机中的定点数约定小数点的位置不变,即人为约定俗成地规定了一个数小数点的位置。例如定点纯整数约定了小数点在数值位的最后。定点纯小数约定了数值位的最高位在小数点后面。
由于计算机字长的限制,当需要表示的数据有很大的数值范围时,他们不能直接用定点小数或者定点整数表示。
另外说明一下定点数(与浮点数相对的概念):
① 定点整数(纯整数)。定点整数指小数点隐含在机器的最右边。定点整数为纯整数。
② 定点小数(纯小数)。定点小数约定小数点位置在符号位、有效数值部分之间。定点小数是存小数,其绝对值小于1。
需要注意在专升本的还是以整数的计算为重,浮点数相较于进制计算等题目属于偏重点。
二、二进制的科学计数法
+10.101 = +1.0101*2+1
-0.00011 = -1.1*2-4
三、浮点数的形式
浮点数由尾数M和阶码E构成。基数为2的数F的浮点数表示为:
F
=
M
∗
2
E
F=M∗2^E
F=M∗2E
因公式在小程序中显示乱码,故公式截图如下:
四、浮点数的编码规则及组成
浮点表示法包括尾数和阶码两个部分:
① 尾数用定点小数表示,尾数所占的位数确定了数的精度。尾数长,数的精确度高;
② 阶码用定点整数表示,阶码所占的位数确定了数的范围。阶码长,数的取值范围越大。
③ 对于不同的机器,阶码和尾数各占多少位,分别用什么码制进行表示都有具体规定。在实际应用中,浮点数的表示首先要进行规格化,即转换成一个纯小数与2^之积(即上文中浮点数的形式),并且小数点后的第一位是1,这样的浮点数称为规格化。
在浮点数的格式
F
=
M
∗
2
E
F=M∗2^E
F=M∗2E 中:
(1)尾数M必须为小数,用n+1位有符号定点小数表示,可采用的原码,补码。
(2)阶码E必须为整数,用k+1位有符号定点整数表示,可采用原码,补码,移码。
(3)浮点数编码的位数m=(n+1)+(k+1)
浮点数的编码格式有多种,格式的选择可由计算机设计人员决定。
例如:
阶符 | 阶码数值部分 | 数符 | 尾数数值部分 |
---|---|---|---|
1位 | k位 | 1位 | n位 |
在上述编码格式中需要说明的是:
(1)阶码是整数,其位数k+1决定了浮点数表示的数值范围,也就是决定了数据的大小,或小数点在数据中的真实位置。阶符决定阶码的正负。即阶码越长,所能表示的范围越大;
(2)尾数是小数,其位数n+1决定了浮点数的精度,如果尾数采用小数且位数n足够长,则当浮点数运算需要对尾数运算结果舍入时,造成的数据精度损失会比较小。即尾数越长,所能表示的精度越高;
(3)数符,即尾数的符号表示浮点数的正负。
以下列数字为例:-1100.11 = -1.10011*23
① 阶符:0(2的幂为3,3的符号,为正,正数为0)
② 阶码:3(2的幂为3)
③ 数符:1(整体的符号,为负数,1)
④ 尾数:10011(小数点后的部分,10011)
五、浮点数的分类
计算机中浮点数有单精度浮点数和双精度浮点数
① 单精度浮点数:单精度浮点数长度四个字节。
② 双精度浮点数,双精度浮点数长度八个字节,精确度更高,取值范围更广。
六、浮点数计算中的溢出现象
知道计算机的浮点数运算中有可能产生“上溢”和“下溢”;
了解:在浮点数表示和运算中,当一个数的阶码大于机器所能表示的最大码时,产生“上溢”。上溢时机器一般不再继续运算而转入“溢出”处理。当一个数的阶码小于机器所能代表的最小阶码时产生“下溢”,下溢时一般当作“机器零”来处理。