浮點數運算
維基百科,自由的 encyclopedia
在電腦科學中,浮點數運算(Floating-point arithmetic)是一種用浮點(英語:floating point,縮寫為FP)方式表示實數的運算方式。浮點是一種對於實數的近似值數值表現法,由一個有效數字(即尾數)加上冪數來表示,通常是乘以某個基數的整數次指數得到。以這種表示法表示的數值,稱為浮點數(floating-point number)。浮點數運算運算通常伴隨著因為無法精確表示而進行的近似或捨入。
此條目需要編修,以確保文法、用詞、語氣、格式、標點等使用恰當。 (2022年3月7日) |
計算機使用浮點數運算的主因,在於電腦使用二進位制的運算。例如:4÷2=2,4=100(2)、2=010(2),在二進位相當於退一位數。則1.0÷2=0.5=0.1(2)也就是。依此類推二進位的0.01(2)就是十進位==0.25。由於十進位制無法準確換算成二進位制的部分小數,如0.1,因此只能使用近似值的方式表達。
這種表示方法類似於基數為10的科學記數法,在計算機上,通常使用2為基數的冪數來表示。一個浮點數a由兩個數m和e來表示:a = m × be。在任意一個這樣的系統中,可選擇一個基數b(記數系統的基)和精度p(即使用多少位來儲存)。m(即尾數(英語:Significand))是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。如果m的第一位是非0整數,m稱作正規化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。
這種表示法的設計,來自於對於值的表現範圍,與精密度之間的取捨:可以在某個固定長度的儲存空間內表示出某個實數的近似值。例如,一個指數範圍為±4的4位元十進位浮點數可以用來表示43210,4.321或0.0004321,但是沒有足夠的精度來表示432.123和43212.3(必須近似為432.1和43210)。當然,實際使用的位數通常遠大於4。
此外,浮點數表示法通常還包括一些特別的數值:+∞和−∞(正負無窮大)以及NaN('Not a Number')。無窮大用於數太大而無法表示的時候,NaN則指示非法操作或者無法定義的結果。
其中,無窮大,可表示為inf,在記憶體中的值是階碼為全1,尾數全0。而NaN在記憶體中的值則是階碼全1,尾數不全0。