計算機中使用的數據可分紅兩大類:編碼
計算機數字和字符的表示方法應有利於數據的存儲、加工(處理)、傳送;3d
編碼:用少許、簡單的基本符號,選擇合適的規則表示儘可能多的信息,同時利於信息處理(速度、方便)code
這個通常都不是問題,但二進制小數轉十進制我忘了,因此在這複習一下blog
例如將0.11101轉爲十進制那麼應該這樣作:0*2^(0)+ 1*2^(-1)+1*2^(-2)+1*2^(-3)+ 0*2^(-4)+1*2^(-5)
排序
計算機在數據、文字的表示方式時,應該考慮一下幾個因素:ci
全部數據的小數點位置固定不變,理論上位置能夠任意,但實際上將數據表示有兩種方法(小數點位置固定-定點表示法/定點格式):純小數和純整數,而後又分帶符號不帶符號軟件
定點純小數
硬件
定點純整數
數據類型
定點表示法的特色:二進制
由於要表示實數(包括小數和整數),因此引入浮點數
浮點表示:小數點位置隨階碼不一樣而浮動
機器中表示
IEEE754標準(規定了浮點數的表示格式,運算規則等)規則規定了單精度(32)和雙精度(64)的基本格式,規則中,尾數用原碼,指數用移碼(便於對階和比較)
E: 階碼位數,決定數據的範圍,M: 尾數位數,決定數的精度
指數採用偏移值,其中單精度偏移值爲127,雙精度爲1023,將浮點數的階碼值變成非負整數,便於浮點數的比較和排序
原碼:表示簡單,運算複雜:符號位不參加運算,要設置加法、減法器,0的表示不惟一,不能直接斷定是執行加法仍是減法運算,分同號和異號
反碼:表示相對原碼複雜,運算相對原碼簡單:符號位參加運算, 只須要設置加法器,但符號位的進位位須要加到最低位,0的表示不惟一
補碼:表示相對原碼複雜,運算簡單:只需設置加法器,0的表示惟一
移碼(增碼):
表示一位十進制數的二進制碼的每一位有肯定的權。通常用8421碼,其4個二進制碼的權從高到低分別爲八、四、2和1。用0000,0001,…,1001分別表示0,1,…,9,每一個數位內部知足二進制規則,而數位之間知足十進制規則,故稱這種編碼爲「以二進制編碼的十進制(binary coded decimal,簡稱BCD)碼」
在計算機內部實現BCD碼算術運算,要對運算結果進行修正,對加法運算的修正規則是:
若是兩個一位BCD碼相加之和小於或等於(1001),即(9),不須要修正;如相加之和大於或等於(10),要進行加6修正,並向高位進位,進位能夠在首次相加(例3.10③)或修正時產生
補碼是在「模」和「同餘」的概念下導出的。
「模」是指一個計量系統的計量範圍,即產生「溢出」的量。
5-2=5+10 (MOD 12) 5+(-2)=5+10 (MOD 12) -2=10 (MOD 12)
能夠說:在模爲12的狀況下,-2的補碼 就是10。 一個負數用其補碼代替,一樣能夠獲得正確的運算結果。
一、一個負數可用它的正補數來代替,而這個正數能夠用模加上負數自己求得。
二、一個正數和一個負數互爲補數時,它們絕對值之和即爲模數。
進一步結論:
補碼性質:高位代表正負,正數補碼,尾數與原碼相同,範圍-2^n~2^n-1(定點整數)
由原碼求補碼的簡便原則:除符號位之外,其他各位按位取反,從最低位開始遇到的第一個1及右邊的各位保持不變
由[X]補求[-X]補:連符號位一塊兒各位求反,末位加1。
由[X]補求[X/2]補:將[X]補的符號位和數值位一塊兒向右移動一次.符號位移走後保持原來的值不變.這稱爲「算術移位」,[X/4]補和[X/8]補同理
n+1位補碼所能表示的數
反碼錶示法
定義:正數的表示與原、補碼相同,負數的反碼符號位爲1,數值位是將原碼的數值按位取反,就獲得該數的反碼錶示,電路容易實現,觸發器的輸出有正負之分
[x ]補=[x ]反+2^-n,反碼錶示有正0和負0之分
移碼
特色:移碼和補碼尾數相同,符號位相反,範圍:-2^n~2^n-1
性質: 若[X1]移>[X2]移,則有 X1>X2.
原碼、補碼、反碼和移碼的區別,可分三個區域: