小數位固定不變的數叫作定點數源碼
定點數有三種類型table
定義:無符號定點整數沒有符號位,因此它的所有數位都用來表示數字,且它的小數點隱含在最低位後,在數碼序列中並不存在。二進制
對於某種數的表示方式,咱們關心兩點:方法
代碼序列:XnXn-1...X1X0表示無符號定點整數,則有n+1位正整數tab
典型值 | 真值 | 代碼序列 |
最大正整數 | 2n+1-1 | 11...11 |
最小非零正數 | 1 | 00...01 |
定義;帶符號定點整數是純整數,小數點在最低位以後,最高位爲符號位。經常使用補碼錶示,也用原碼錶示。移動
代碼序列:XnXn-1...X1X0表示帶符號定點整數,Xn是符號位poi
原碼定點整數表示範圍:-(2n-1)~(2n-1)block
補碼定點整數表示範圍:-2n~(2n-1)浮點數
源碼,補碼定點整數分辨率:1浮動
定義:帶符號定點小數是純小數,
代碼序列:X0.X1...Xn
最高位X0是符號位,小數點位置在符號位以後,X1...Xn是數值的有效部分,常稱尾數,X1稱爲最高數位或最高有效位
原碼定點小數表示範圍:-(1-2-n)~(1-2-n)
補碼定點小數表示範圍:-1~(1-2-n)
分辨率:2-n
定點小數的位置是固定的,不須要咱們專門設置,在實際中並不存在。
定義:是一種小數點位置不固定可隨須要浮動的數
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
移碼的數值表示就是補碼的符號位變反了。
例題:某浮點數如上面的浮點數的表示,字長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
規格化要求: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