什麼是浮點運算資料是怎樣的

  浮點運算就是實數運算,因為計算機只能儲存整數,那麼你對浮點運算了解多少呢?以下是由小編整理關於什麼是浮點運算的內容,希望大家喜歡!

  浮點運算的簡介

  當我們用不同的電腦計算圓周率時,會發現一臺電腦的計算較另一臺來講結果更加精確。或者我們在進行槍戰遊戲的時候,當一粒子彈擊中牆壁時,牆上剝落下一塊牆皮,同樣的場面在一臺電腦上的表現可能會非常的呆板、做作;而在另外一臺電腦上就會非常生動形象,甚至與我們在現實中看到的所差無幾。這都是浮點運算能力的差異導致的。

  如果是實數的話,就不是這樣了,機器有兩種辦法表示實數,一種是定點,就是小數點位置是固定的,一種是浮點,就是小數點位置不固定,計算方法也比較麻煩,通常會比整數運算代價大很多

  FPU->Floating Point Unit,浮點運算部件

  BCD->Binary Coded Decimal 壓縮的二進位制數,是用4個位來表示數字0~9,一個byte表示兩個十進位制數,比如1001111表示79

  科學計數法:a×10的n次冪的形式。將一個數字表示成 a×10的n次冪的形式,其中1≤|a|<10,n表示整數,這種記數方法叫科學記數法

  浮點運算的資料

  浮點運算使用三種不同的資料:

  1整數Integer,又分為字,短整數Short Integer和長整數longint

  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-4932 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

  2BCD數

  在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

  符號 指數 有效數

  浮點運算的格式

  單精度:_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 33.9876

  DD和real4都可以在asm中來定義單精度浮點數,4 bytes

  DQ和real8都可以在asm中來定義雙精度浮點數,8 bytes

  DT和real10都可以在asm中來定義擴充套件精度浮點數,10 bytes

浮點運算的資料