【软考】——定点数、浮点数

版权声明:希望各位能遵守各自内心的原则 https://blog.csdn.net/weixin_40918067/article/details/81623984

今天,天气不错!就写下计算机的硬件基础知识吧!首先来讲下数据计算吧!

1、定点数:

定点数:就是小数点的位置固定不变的数;

小数点的位置通常有两种约定方式:一种是定点整数(纯整数,小数点在最低有效数值位之后),另一种是定点小数(纯小数,小数点在最高有效数值位之前);如下图所示:

  

                                                

 

 

2、浮点数:

浮点数:就是小数点的位置不固定的数;

二进制N可以表示为:N=2^E * F,其中的E称为阶码,F称为尾数;该表示方法叫浮点表示法;

哈哈!阶码在浮点数中有什么用呢?其实浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定;

                   

通常为了利用尾数表示更多的有效数字,而采用规格化浮点数;那规格化是什么意思?其实也就是将尾数的绝对值限定在区间[ 0.5,1];那用补码表示尾数时,该注意哪些问题?这里我就不讲了!O(∩_∩)O哈哈~

 

现在我们来讲下浮点数的计算吧!这可软考中的常考考点哦!可不能掉以轻心~哈

其实浮点数的运算也就那三个主要步骤:第一步就是对阶,第二步就是尾数计数,到了第三步就是结果格式化

 

第一步的对阶究竟是什么?”阶”??~那是阶码吗?也就是指数喽!那”对”又是什么,那对阶的意思又是什么?^_^也就是使两个数的阶码相同的意思而已!

那如何使那两个数的阶码相同呢?这又是一个难题喽!首先设K=|第一个阶码 - 第二个阶码|;接着把阶码小的数的尾数右移K位,并使其阶码加上K就可以啦;

那第二步是求尾数和,也就是对阶完成后,两个浮点数尾数也就如同定点数,而它的计算过程同定点数那样计算;

到了最后一步啦!结果格式化,使用它的原因是因为尾数计算后,可能会产生溢出,此时将尾数右移,同时指数加1,如果指数加1后发生溢出,则表示两个浮点数的运算发生了溢出;

但是如果尾数计算后没有溢出,则尾数不断左移,同时指数减1,直到尾数为格式化数;如果这个过程中,指数小于机器能表达的最小数,则将结果置”机器零”,这种情况称为下溢
 

举个栗子

比如:1000+119=?

用浮点数运算来算的话,1000可以为 

1.0∗1031.0∗103


119可以为: 

0.119∗1030.119∗103

1.0和0.119为尾数,10为基数,3为指数

注意:如果要2个浮点数相加,那么要保证他们的指数和基数相同。

尾数相加:1.0+0.119=1.119,再加上基数和指数,那么答案是: 

1.119∗1031.119∗103

注意:尾数相加后,第一位数必须为1,不然就需要进行格式化。

比如:0.119*10^3,这个第一位是0,是不允许的,所以我们要进行格式化:1.119*10^2,这样才是允许的。

猜你喜欢

转载自blog.csdn.net/weixin_40918067/article/details/81623984