定點數
小數位固定不變的數叫做定點數
定點數有三種類型
(1)無符號定點整數(Unsigned fixed point integer)
定義:無符號定點整數沒有符號位,所以它的全部數位都用來表示數字,且它的小數點隱含在最低位后,在數碼序列中並不存在。
對於某種數的表示方式,我們關心兩點:
- 1.表示范圍:這種方法表示數的大小(正負方向),無符號定點整數范圍:0~2n-1
- 2.分辨率:精度,1(即最小非零正數)
代碼序列:XnXn-1...X1X0表示無符號定點整數,則有n+1位正整數
典型值 | 真值 | 代碼序列 |
最大正整數 | 2n+1-1 | 11...11 |
最小非零正數 | 1 | 00...01 |
(2)帶符號定點整數
定義;帶符號定點整數是純整數,小數點在最低位之后,最高位為符號位。常用補碼表示,也用原碼表示。
代碼序列:XnXn-1...X1X0表示帶符號定點整數,Xn是符號位
原碼定點整數表示范圍:-(2n-1)~(2n-1)
補碼定點整數表示范圍:-2n~(2n-1)
源碼,補碼定點整數分辨率:1
(3)帶符號定點小數
定義:帶符號定點小數是純小數,
代碼序列:X0.X1...Xn
最高位X0是符號位,小數點位置在符號位之后,X1...Xn是數值的有效部分,常稱尾數,X1稱為最高數位或最高有效位
原碼定點小數表示范圍:-(1-2-n)~(1-2-n)
補碼定點小數表示范圍:-1~(1-2-n)
分辨率:2-n
定點小數的位置是固定的,不需要我們專門設置,在實際中並不存在。
浮點數
定義:是一種小數點位置不固定可隨需要浮動的數
(1)浮點數表示
N=REx M
Ef | E1 | ... | Em | Mf | M1 | M2 | ... | Mn |
階碼E,Ef為階符
尾數M,Mf為數符
對尾數的規格化要求
若以R=2為基底
浮點數用原碼表示,則需要:1/2 <= |M| < 1,此時最高有效位始終為1;
浮點數用補碼表示,則需要:-1<= M < -1/2或1/2<=M<1,前者最高有效位為1,后者為0
對於正數,規格化特征是M1=1
(2)移碼(增碼)
移碼的數值表示就是補碼的符號位變反了。
例題:某浮點數如上面的浮點數的表示,字長32位階碼8位,含1位階符,補碼表示以2為;尾數24位,含一位數符,補碼表示,規格化。若浮點數代碼為(A3680000)16,求真值N
(A3680000)16=(10100011,01101000...0)2
階碼長度為8位,4位二進制表示1位十六進制,總共兩位十六進制,因此A3表示階碼,第一位表示符號位,1為負數
因為階碼是補碼表示,所以我們需要轉換為原碼
E=-(1011101)2 =-(93)10
M=(0.1101000..0)2=(0.8125)10
N=2-93x0.8125
將-(1011.11010...0)2寫成浮點數代碼F
N=-(1011.11010...0)2
=-(0.101111010...0)2x24
E=(4)10=(00000100)2
M補=(1.010000110...0)2
所以F=(00000100,1010000110...0)2=(04A18000)16
(5)IEEE754標准浮點格式
規格化要求:0<=|M|<1
例題:將十進制數20.59375轉換成符合IEEE754格式的32位短浮點數,寫出其二進制代碼,並轉換成十六進制代碼
1.分別轉換整數部分和小數部分為二進制20.59375=10100.10011
2.移動小數,使其在第一位與第二位之間
10100.10011=1.010010011x24
得到階碼:E=4
3.尾數符號位為正數,即0 階碼表示成移碼:E=4+127=131=1000 0011
尾數M=0 1001 0011
4.所以F=(0100 0001 1010 0100 1100 0000 0000 0000 )2
=(41A4C000)16