小數字固定不變的數叫做定點數
定點數有三種型別
定義:無符號定點整數沒有符號位,所以它的全部數字都用來表示數字,且它的小數點隱含在最低位後,在數碼序列中並不存在。
對於某種數的表示方式,我們關心兩點:
**序列:xnxn-1...x1x0表示無符號定點整數,則有n+1位正整數
典型值真值
**序列
最大正整數
2n+1-1
11...11
最小非零正數
100...01
定義;帶符號定點整數是純整數,小數點在最低位之後,最高位為符號位。常用補碼表示,也用原碼表示。
**序列:xnxn-1...x1x0表示帶符號定點整數,xn是符號位
原碼定點整數表示範圍:-(2n-1)~(2n-1)
補碼定點整數表示範圍:-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
efe1
...em
mfm1
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
定點數和浮點數 定點數和浮點數計算
這個東西其實不是很難,但是確實足夠繞的,因為從十進位制的加減乘除轉換到二進位制的加減乘除就已經很麻煩了,然後為了選拔人才,不給你二進位制,直接給你十六進製制,當然最麻煩的還是補碼和移碼,確實足夠 但是給予足夠的練習還是可以比較熟練的,公式稍後會整理到置頂的公式大全中。可以看完了以後去嘗試一下相關計算...
浮點數 定點數
浮點數是表示小數的一種方法.所謂浮點就是小數點的位置不固定,與此相反有定點數,即小數點的位置固定.整數可以看做是一種特殊的定點數,即小數點在末尾.8086 8088中沒有浮點數處理指令,不過從486起,cpu內建了浮點數處理器,可以執行浮點運算.一般的浮點數有點象科學計數法,包括符號位 指數部分和尾...
定點數與浮點數
1 定點數 定點數指小數點在數中的位置是固定不變的,通常有定點整數和定點小數。在對小數點位置作出選擇之後,運算中的所有數均應統一為定點整數或定點小數,在運算中不再考慮小數問題。1 定義 資料中小數點位置固定不變的數 2 種類 定點整數 3 小數點在符號位與有效位之間。注 定點數受字長的限制,超出範圍...