10進製與2進製轉換還真是個麻煩事,由於生活中,我們都是用10進製的,所以,當我們生活中遇到2進製的數字時,總是需要轉換成10進製來處理,而電腦開發者,還經常要在兩種進製裡互換!
以前,將10進製與2進製互換,我總是以2n次方來轉,如下:
18 轉 2進製 n次方方法此方法的要求:18 = 16 + 2
18 = 24 + 03 + 02 + 21 + 00
18 = 10010
第一步:加數一定要是2的n次方,
第三步:將乘方底數不為0的寫為1,為0的照寫下來就是2進製了!
總結:這種方法遇到大的數就麻煩了,因為要心數2n次方
後來,不經意中看到了另外乙個轉換的方法!就是除2取餘後,反取餘數就可!如下:
18 轉 2進製 取餘方法總結:此方法比較好,再大的數,除以2都很容易算!(1)18 / 2 = 9 …… 0
(2)9 / 2 = 4 …… 1
(3)4 / 2 = 2 …… 0
(4)2 / 2 = 1 …… 0
(5)1 / 2 = 0 …… 1
反取餘數就是:10010,所以:18=10010
反推:既然用取餘法將10進製轉換2進製那麼方便!那麼是否可以依據取餘法來推算出2進製轉10進製?
依上面的運算來反推算:拓展:取餘方法也可以應用於10以內的進製轉換,只要將進製做為除數就可以!(1)18 / 2 = 9 … 0 》 9 x 2 + 0 = 18
(2)9 / 2 = 4 …… 1 》 4 x 2 + 1 = 9
(3)4 / 2 = 2 …… 0 》 2 x 2 + 0 = 4
(4)2 / 2 = 1 …… 0 》 1 x 2 + 0 = 2
(5)1 / 2 = 0 …… 1 》 0 x 2 + 1 = 1
運算順序如下:
(1)0 x 2 + 1 = 1
(2)1 x 2 + 0 = 2
(3)2 x 2 + 0 = 4
(4)4 x 2 + 1 = 9
(5)9 x 2 + 0 = 18
以上運算的特點:
第二個加數,剛好按二進位制的高位至低位依次排下來
(1)0 x 2 + 1 = 1(加數1是二進位制的最高位)
(2)1 x 2 + 0 = 2(加數0是二進位制的第2位)
(3)2 x 2 + 0 = 4(加數0是二進位制的第3位)
(4)4 x 2 + 1 = 9(加數1是二進位制的第4位)
(5)9 x 2 + 0 = 18(加數0是二進位制的第5位)
由於第一步(1)0 x 2 + 1 = 1
,第乙個乘數只能是0,所以,第一步的
和與加數一定是相同的!也即是說第二步的第乙個乘數就是二進位制的最高位!
所以,2進製轉換10進製的運算過程應為:(最高位x2+第2位的和)x2+第3位,重複運算至最後一位即可!如下:
2進製的101轉為10進製的運算過程
1x2+0=2 (第乙個乘數1是二進位制的最高位,第2個加數0
是二進位制的第2位)
2x2+1=5 (第2個加數1
是二進位制的第3位,也就是最後一位,至此運算結束)
101 = 5
2進製的11001轉為10進製的運算過程
1x2+1=3
3x2+0=6
6x2+0=12
12x2+1=25
11001=25
18 轉 4進製18 / 4= 4 …… 2
4 / 4 = 1 …… 0
1 / 4 = 0 …… 1
反取餘數就是:102,所以:18 = 102
10進製轉換18進製 2進製
將乙個10進製數除以18,得到的商再除以18,依次類推直到商等於1或0為止,倒序取得的餘數即為18進製的結果。同理轉換為2進製。如圖 實現 如下 public class cal4 轉換18進製 param number return public static listto18 int numbe...
10進製34進製轉換
10進製34進製轉換 對映表 0 9 a z 除去i,o static const char code10map34 10進製轉為34進製 udec 10進製資料 szcode 34進製字元 itgtlen 34進製長度 不足時前面插入0 返回34進製字元長度 int dec2thrityfour ...
10進製轉2進製
題目 將10進製數字轉換為2進製。思考 進製轉換有三種情況。十進位制轉二,八,十六進製制 三種轉化的方法類似,我重點說十進位制轉二進位制的方法,其餘兩種情況可以模擬。十進位制轉二進位制 方法 10進製數字,整數部分除2後每次餘數反向取 小數部分乘2直到小數部分為0 特殊情況取位數 將整數部分正向取。...