基礎概念:
計算機通訊和儲存的時候都是以010101這樣的二進位制資料為基礎的,這兒的乙個0和1佔的地方就叫bit(位),即乙個二進位制位,
乙個位元組 byte 是八位,即八個二進位制位。
不同進製的產生:
2進製,逢2進1
4進製,逢4進1
16進製制,逢16進1
16進製制標示:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
運算:
x進製 —— 10 進製
例1:x為二進位制 x=0110
公式:從右向左(低位到高位)0*2^0+1*2^1+1*2^2+0*0^3=6
例2:x為16進製制 x=5e
公式:從右向左(低位到高位)e=15 15*16^0+5*16^1= 95
10進製——x進製
方法:將10進製的數除以x,一直除到除不盡為止,沒一次執行除以的操作的餘數倒敘排列就是結果
列3:x為2進製 10進製數為1234
1234/2 = 617 餘 0
617/2 = 308 餘 1
308/2 = 154 餘 0
154/2 = 77 餘 0
77/2 = 38 餘 1
38/2 = 19 餘 0
19/2 = 9 餘 1
9/2 = 4 餘 1
4/2 = 2 餘 0
2/2 = 1 餘 0
1/2 = 0 餘 1
結果二進位制為 100 1101 0010
可以看到以上運算比較繁瑣,因為進製越小,位數越多(例1,2),除數越小(例3),所有計算步數會越多。
我們發現二進位制是8位,16進製制是32位,4位的二進位制轉換為16進製為1位,2進製與16進製制轉換會很方便。
例4:二進位制為1111,對應10進製數值為8+4+2+1=15, 15對應16進製為f,
例5:16進製為e, 對應10進製數值為14,根據例1,如果轉為二進位制需要8,4,2,1這四個數組合,14組合為8,0,2,1,所有對應二進位制就為1011
這樣:例1中二進位制轉10進製,為了不那麼多相乘運算就可以先轉為16進製制,然後由16進製制轉為10進製
例3中10進製轉二進位制,為了不那麼多除以運算就可以先轉為16進製制,再由16進製制轉為二進位制
可能會有疑問例4中二進位制轉10進製很容易,為什麼要轉16進製制再轉10進製呢,這是因為例4的二進位制只有4位,如果很多位,那用例4 的方法就會快捷一些,
如例6:二進位制為0110 1111,這樣轉10進製就需要好多相乘運算,先轉16進製制試試看:
0110 1111 轉16進製制 根據例4 中的8421, 0110 為 6,16進製為6 ;1111為15,16進製為f,轉為16進製制結果為6f,再依據例1 計算 f*16^0+6*16^1 = 111.
例5同樣道理。
十進位制進制法 進製轉換方法(進製轉換方法的口訣)
你好!十換成二 除二取餘倒寫 僅代表個人觀點,不喜勿噴,謝謝。一,二進位制轉十進位制 由二進位制數轉換成十進位制數的基本做法是,把二進位制數首先寫成加權係數展開式,然後按十進位制加法規則求和。這種做法稱為 按權相加 法。二,能詳細點嗎?個人感覺最簡單的 二 十進位制之間的轉換方法,就是8421碼發 ...
進製轉換方法神了
方法一 用itoa函式 include 這函式太神了,進製轉換直接秒過 include include 貌似錯了還是不能用?int main return 0 方法一 用itoa函式 include 這函式太他媽的神了,進製轉換直接秒過 includeint main return 0 方法二 用位...
進製之間的轉換方法
一 十進位製到二進位制 1 整數部分 除 2取餘逆排法 即將十進位制的整數部分除以 2,得到乙個商和乙個餘數 用商再除以 2,又得到乙個新的商和餘數 如此進行下去 直到商等於 0,將各次所得餘數以最後餘數為最高位 最先的為最低位 依次排列即可.2 小數部分 乘 2取整順排法 即先用 2乘以十進位制中...