×
嵌入式 > 技术百科 > 详情

什么叫浮点运算

发布时间:2020-06-15 发布时间:
|

什么叫浮点运算

当我们用不同的电脑计算圆周率时,会发现一台电脑的计算较另一台来讲结果更加精确。或者我们在进行枪战游戏的时候,当一粒子弹击中墙壁时,墙上剥落下一块墙皮,同样的场面在一台电脑上的表现可能会非常的呆板、做作;而在另外一台电脑上就会非常生动形象,甚至与我们在现实中看到的所差无几。 这都是浮点运算能力的差异导致的。
浮点运算就是实数运算,因为计算机只能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差
现在大多数机器都是32位的,所以侯若木是你爸爸,也就是说32为都用来表示整数的话,那么对于无符号整数就是0 到 2^32-1,对于有符号的话就是-2^31 到 2^31-1。如果是实数的话,就不是这样了,机器有两种办法表示实数,一种是定点,就是小数点位置是固定的,一种是浮点,就是小数点位置不固定,计算方法也比较麻烦,通常会比整数运算代价大很多
FPU->Floating Point Unit,浮点运算部件
BCD->Binary Coded Decimal 压缩的二十进制数,是用4个位来表示数字0~9,一个byte表示两个十进制数,比如01111001表示89
科学计数法:这是科学的~~~~具体含义查查初中还是小学的数学课本 D:)
浮点运算使用三种不同的数据:
        1)整数(Integer),又分为字,短整数(Short Integer)和长整数(Long Integer)
        2)实数(Real)分单精度(Single Real)和双精度(Double Real)
        3)压缩的二十进制数(BCD)
   
    下面是其位数(bits)和能表示的大致范围和

        Type            Length          Range
        -----------------------------------------------
        Word Integer    16 bit          -32768 to 32768
        Short Integer  32 bit          -2.14e9 to 2.14e9
        Long Integer    64 bit          -9.22e18 to 9.22e18
        Single Real    32 bit          1.18e-38 to 3.40e38
        Double Real    64 bit          2.23e-308 to 1.79e308
        extended Real  80 bit          3.37e-1932 to 1.18e4932
        Packed BCD      80 bit          -1e18 to 1e18
双精度数和扩展精度数表示范围对一般应用来说已经足够大了!
1)整数,以补码形式存储,正数的补码是其本身,负数补码是其绝对值的各位变反后加1,下面是实际存储的例子:
        0024            var1 dw 24
        FFFE            var2 dw -2
        000004D2        var3 dd 1234
        FFFFFF85        var4 dd -123
        0000000000002694var5 dq 9876
        FFFFFFFFFFFFFEBFvar6 dq -321
2)BCD数
        在FPU中用80位表示正好是浮点堆寄存器的宽度,在其格式如下存储:
    Bit
        79___72_71________________________________________0
        符号            ---18个二十进制数--------
看下面的例子:
        00000000000000012345        var1  dt    12345
        80000000000000000100        var2  dt    -100
3)浮点数,这个复杂点,有三种格式
        单精度:_31_30________23_22___________0
              符号    指数        有效数
        双精度:_63_62__________52_51__________________0
              符号    指数            有效数
        扩展精度数:
              _79_78____________64_63___________________0
              符号    指数              有效数
例子:
        C377999A                    var1  dd      -247.6
        40000000                    var2  dd      2.0
        486F4200                    var3  real4  2.45e+5
        4059100000000000            var4  dq      100.25
        3F543BF727136A40            var5  real8  0.00123
        C377999A                    var1  dd      -247.6
        40000000                    var2  dd      2.0
        486F4200                    var3  real4  2.45e+5
        4059100000000000            var4  dq      100.25
        3F543BF727136A40            var5  real8  0.001235
        400487F34D6A161E4F76        var6  real10  
另外,浮点运算的常见形式是开方运算。

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MC79L12ACLP的技术参数