任何一個數均可以表示為:(N)R=±S×R±e
R:基值。計算機中常用的R可取2、8、10、16等。
S:尾數。代表數N的有效數字。計算機中一般表示為純小數。
e:階碼(指數)。代表數N的小數點的實際位置。一般表示為純整數。
一、定點數
定點數:約定計算機中所有數據的小數點位置均是相同的,而且是固定不變的,即階碼e的取值固定不變的機器數表示。
定點數的兩種表示方法:
定點小數:e=0,表示純小數,小數點在符號位與最高數值位之間。 定點整數:e=n,表示純整數,小數點在最低有效數值位之后,在最低位的右邊,不占位

【例】
(123.45)10 = 0.12345×103 = 12345×10-2
(11011.101)2 = 0.11011101×105 = 11011101×2-3
二、浮點數
浮點數用類似(N)R=±S×R±e科學計數法來表達,比如1001.101的規范浮點數表達為1.001101×23
浮點數的小數點位置不是固定,而是可以浮動的,即e的取值可變。利用改變e值達到了浮動小數點的效果,從而靈活地表達更大范圍地實數。因此在機器中必須將e表示出來。
浮點數的表示如圖

尾數的位數決定了數據表示的精度,為帶符號的純小數。
階碼的位數決定了數據表示的范圍,為帶符號的純整數。
三、浮點數的規格化
(1)如何盡可能多地保留有效數字?
(2)如何保證浮點表示地唯一?
規格化思想:盡可能去掉尾數中的前置“0”,盡量使小數點后第一位為“1”。對於二進制數,就是要滿足:1/2≤|S|<1
【例】0.001001×25的規格化
0.001001×25規格化表示為:0.100100×23
四、原碼規格化
若[S]原=Sf.S1S2..Sn,規格化標志是:S1=1,即:[S]原=0.1xx...x 或 [S]原=1.1xx...x。
【例】
[S]原=0.1101101 → [S]原=1.1101101 是規格化數
[S]原=0.0101101 → [S]原=1.0101101 不是規格化數
五、補碼規格化
若[S]補=Sf.S1S2..Sn,規格化標志是:Sf⊙S1=1,即:[S]補=0.1xx...x 或 [S]補=1.0xx...x。⊙指異或運算
【例】
[S]補=0.1101101 → [S]補=1.0101101 是規格化數
[S]原=0.0101101 → [S]原=1.1101101 不是規格化數
六、IEEE 754浮點數標准
IEEE 754標准在表示浮點數時,每個浮點數均由三部分組成:符號位S,指數部分E和尾數部分M。
32位單精度浮點數表示格式如圖

S:數符,0表示“+”,1表示“-”。
E:指數,即階碼部分。其中包括1位階符和7位數值。采用移127碼表示,移碼值為127。即 階碼=127+實際指數值
M:共23位。由於尾數采用規格化表示,所以IEEE 754 標准約定在小數點左部有一位隱含位為1,從而使尾數的實際有效位為24位,即尾數的有效值為1.M。
【例】利用IEEE 754標准將數176.0625表示為單精度浮點數
解析: ①將十進制轉換二進制數:(176.0625)10=(10110000.0001)2
②對二進制數進行規格化處理:10110000.0001=1.01100000001×27
③將小數部分擴展為單精度浮點數所規定的23位尾數為0110,0000,0010,0000,0000,000
④求階碼,指數為7位數值,偏移量為127。E=7+127=134=(10000110)移
最后176.0625的單精度浮點數表示為:0 10000110 0110,0000,0010,0000,0000,000
