浮點數,是指小數點在資料中的位置可以左右移動的資料。它通常被表示成:
N = M* RE
這裡的M(Mantissa)被稱為浮點數的尾數,R(Radix)被稱為階碼的基數,E(Exponent)被稱為階的階碼。計算機中一般規定R為2、8或16、是一個確定的常數,不需要在浮點數中明確表示出來。因此,要表示浮點數,一是要給出尾數M的值,通常用定點小數形式表示,它決定了浮點數的表示精度,即可以給出的有效數字的位數。二是要給出階碼,通常用整數形式表示,它指出的是小數點在資料中的位置,決定了浮點數的表示範圍。浮點數也要有符號位。在計算機中,浮點數通常被表示成如下格式:
Ms是尾數的符號位,即浮點數的符號位,安排在最高一位;
E 是階碼,緊跟在符號位之後,佔用m位,含階碼的一位符號;
M 是尾數,在低位部分,佔用n位。
合理地選擇m和n的值是十分重要的,以便在總長度為1+m+n個二進位制表示的浮點數中,既保證有足夠大的數值範圍,又保證有所要求的數值精度。例如,在PDP-11/70計算機中,用32位表示的一個浮點數,符號位佔一位,階碼用8位,尾數用23位,數的表示範圍約為±1.7*10±38 ,精度約為10進位制的7位有效數字。
若不對浮點數的表示格式作出明確規定,同一個浮點數的表示就不是唯一的。例如0.5也可以表示為0.05×101 , 50×10-2 等。為了提高資料的表示精度,也為了便於浮點數之間的運算與比較,規定計算機內浮點數的尾數部分用純小數形式給出,而且當尾數的值不為0時,其絕對值應大於或等於0.5,這被稱為浮點數的規格化表示。對不符合這一規定的浮點數,要透過修改階碼並同時左右移尾數的辦法使其變成滿足這一要求的表示形式,這種操作被稱為的規格化處理,對浮點數的運算結果就經常需要進行規格化處理。
當一個浮點數的尾數為0,不論其階碼為何值,該浮點數的值都為0。當階碼的值為它能表示的最小一個值或更小的值時,不管其尾數為何值,計算機都把該浮點數看成零值,通常稱其為機器零,此時該浮點數的所有各位(包括階碼位和尾數位)都清為0值。
按國際電子電氣工程師協會的IEEE標準,規定常用的浮點數的格式為:
符號位 階碼 尾數 總位數
短浮點數 1 8 23 32
長浮點數 1 11 52 64
臨時浮點數 1 15 64 80
對短浮點數和長浮點數,當其尾數不為0值時,其最高一位必定為1,在將這樣的浮點數寫入記憶體或磁碟時,不必給出該位,可左移一位去掉它,這種處理技術稱為隱藏位技術,目的是用同樣多位的尾數能多儲存一位二進位制位。在將浮點數取回運算器執行運算時,再恢復該隱藏位的值。對臨時浮點數,不使用隱藏位技術。
從上述討論可以看到,浮點數比定點小數和整數使用起來更方便。例如,可以用浮點數直接表示電子的質量9×10-28 克,太陽的質量2×1033 克,圓周率3.1416等。上述值都無法直接用定點小數或整數表示,要受數值範圍和表示格式各方面的限制。
優點:數值範圍不受限制,表示格式也不受限制
浮點數,是指小數點在資料中的位置可以左右移動的資料。它通常被表示成:
N = M* RE
這裡的M(Mantissa)被稱為浮點數的尾數,R(Radix)被稱為階碼的基數,E(Exponent)被稱為階的階碼。計算機中一般規定R為2、8或16、是一個確定的常數,不需要在浮點數中明確表示出來。因此,要表示浮點數,一是要給出尾數M的值,通常用定點小數形式表示,它決定了浮點數的表示精度,即可以給出的有效數字的位數。二是要給出階碼,通常用整數形式表示,它指出的是小數點在資料中的位置,決定了浮點數的表示範圍。浮點數也要有符號位。在計算機中,浮點數通常被表示成如下格式:
Ms是尾數的符號位,即浮點數的符號位,安排在最高一位;
E 是階碼,緊跟在符號位之後,佔用m位,含階碼的一位符號;
M 是尾數,在低位部分,佔用n位。
合理地選擇m和n的值是十分重要的,以便在總長度為1+m+n個二進位制表示的浮點數中,既保證有足夠大的數值範圍,又保證有所要求的數值精度。例如,在PDP-11/70計算機中,用32位表示的一個浮點數,符號位佔一位,階碼用8位,尾數用23位,數的表示範圍約為±1.7*10±38 ,精度約為10進位制的7位有效數字。
若不對浮點數的表示格式作出明確規定,同一個浮點數的表示就不是唯一的。例如0.5也可以表示為0.05×101 , 50×10-2 等。為了提高資料的表示精度,也為了便於浮點數之間的運算與比較,規定計算機內浮點數的尾數部分用純小數形式給出,而且當尾數的值不為0時,其絕對值應大於或等於0.5,這被稱為浮點數的規格化表示。對不符合這一規定的浮點數,要透過修改階碼並同時左右移尾數的辦法使其變成滿足這一要求的表示形式,這種操作被稱為的規格化處理,對浮點數的運算結果就經常需要進行規格化處理。
當一個浮點數的尾數為0,不論其階碼為何值,該浮點數的值都為0。當階碼的值為它能表示的最小一個值或更小的值時,不管其尾數為何值,計算機都把該浮點數看成零值,通常稱其為機器零,此時該浮點數的所有各位(包括階碼位和尾數位)都清為0值。
按國際電子電氣工程師協會的IEEE標準,規定常用的浮點數的格式為:
符號位 階碼 尾數 總位數
短浮點數 1 8 23 32
長浮點數 1 11 52 64
臨時浮點數 1 15 64 80
對短浮點數和長浮點數,當其尾數不為0值時,其最高一位必定為1,在將這樣的浮點數寫入記憶體或磁碟時,不必給出該位,可左移一位去掉它,這種處理技術稱為隱藏位技術,目的是用同樣多位的尾數能多儲存一位二進位制位。在將浮點數取回運算器執行運算時,再恢復該隱藏位的值。對臨時浮點數,不使用隱藏位技術。
從上述討論可以看到,浮點數比定點小數和整數使用起來更方便。例如,可以用浮點數直接表示電子的質量9×10-28 克,太陽的質量2×1033 克,圓周率3.1416等。上述值都無法直接用定點小數或整數表示,要受數值範圍和表示格式各方面的限制。
優點:數值範圍不受限制,表示格式也不受限制