在開發中其實數字轉換進制是經常的事,但是它是如何實現轉換的呢?
先隨便拿一個數字來計算,就定為 28 吧,要將 一個十進制的 28 轉換為 二進制應該怎么去做呢?
其實很簡單,我們來看例子: 先將 28 除以 2, 即 28 / 2 = 14 余 0, 接着 將 14 / 2 = 7 余 0 ,接着將 7 / 2 = 3 余 1 , 接着將 3 / 2 = 1 余 1
最后將 最后一個商 從 后 向前拼接起來 即: 28轉換為二進制 則為 11100,
那么我們來驗證一下是否是對的
結果證明是對的,那我們再來一個驗證這個方法:
拿一個大一點的數,就定 453 吧
第一步,計算:
453 / 2 = 226 ······ 1
226 / 2 = 113 ······ 0
113 / 2 = 56 ······ 1
56 / 2 = 28 ······ 0
28 / 2 = 14 ······ 0
14 / 2 = 7 ······ 0
7 / 2 = 3 ······ 1
3 / 2 = 1 ······ 1
第二步,拼接:
最后一個商 為 1 ,然后把這個商和這些余數從后向前拼接起來,即 111000101
那么我們再去驗證一下結果:
結果說明這個方法是正確的。
那如果我想 將一個二進制轉換為一個十進制 應該怎么做呢?
其實也很簡單,例如現在有一個二進制 為 111000101,那么我們是從后向前來進行排序來進行計算。
第一步,計算:
1 * 2的0次方 = 1
0 * 2的1次方 = 0
1 * 2的2次方 = 4
0 * 2的3次方 = 0
0 * 2的4次方 = 0
0 * 2的5次方 = 0
1 * 2的6次方 = 64
1 * 2的7次方 = 128
1 * 2的8次方 = 256
第二步,將結果相加起來:1 + 0 + 4 + 0 + 0 + 0 + 64 + 128 + 256 = 453
接下來是 16 進制和 10 進制的轉換
在這里我們先看一個對照表:
在這里作出這個表的說明:其實不管是幾進制,就是逢幾進 1 的意思,例如我們平時最常用的十進制計算逢10進1,在進為之前有0 ,1 ,2 ,3, 4, 5, 6, 7, 8 ,9 代表,
當然,如果是8進制,那就是 0, 1, 2, 3, 4, 5, 6 ,7
如果是 12 進制就是 0 到 B,
如果是16 進制就是 0 到 F,當然還有很多其它的進制,其實都是一樣的道理。
在16進制中我們經常看到會有一些大寫的字母,例如: 2AF2BC
其實我們只要知道A B C D E F 分別代表着一個數字就可以了,A代表數字 10,B代表數字 11,C代表數字 12, D代表數字 13, E代表數字14,F代表數字15
那接下來就簡單了,因為計算其實和二進制是差不多的。
我們來看一個例子:將十六進制 2AF2BC 轉換為 十進制
第一步:從后向前來進行排序來進行計算。
首先是C,它代表的是12,
那就是 12 * 16的0次方 = 12
B代表的是11,即:11 * 16的1次方 = 176
接下來是 2 * 16 的2次方 = 512
F代表的是15,即:15 * 16的3次方 = 61440
A代表的是10,即:10 * 16的4次方 = 655360
接下來是2 * 16的5次方 = 2097152
第二步,把它們相加:12 + 176 + 512+ 61440 + 655360 + 2097152 = 2814652
接下來我們看一下效果:
那接下來我們將十進制轉換為 十六進制,計算方法和二進制是一樣的其實
那我們先隨便定一個數字,例如:2589
第一步,計算:
2589 / 16 = 161 ······ 13
161 / 16 = 10 ······ 1
第二步,拼接。最后一個商為10則為A,1直接為1,13為 D , 則最后結果為 A1D
最后我們在來看一下12進制和10進制的轉換
例如十進制的 18 轉換為 12進制
18 / 12 = 1 ······ 6
最后一個商 是 1 拼接起來就是 16
好,我們來個大一點的數字:
例如: 241
241 / 12 = 20 ······ 1
20 / 12 = 1······ 8
拼接起來就是:181 我們看一下結果:
那我們來將12進制轉換為 10 進制看看,
如: 5A3B
第一步,計算:
B代表11,則 11 * 12的0次方 = 11
3 * 12 的1 次方 = 36
A代表10,則 10 * 12的2次方 = 1440
5 * 12的3次方 = 8640
第二步,相加: 11 + 36 + 1440 + 8640 = 10127
其實就是怎么簡單,所有的進制都可以通過這樣的方法來進行轉換