目前我們所學的都是基於十進制。若想換成其他進制數,最簡單的偏方是將十進制除以所需要的進制數。看接下來的實例:
將十進制的50轉換成二進制
文本: 50÷2=25••••••0
25÷2=12••••••1
12÷2=6••••••0
6÷2=3••••••0
3÷2=1••••••1
1÷2=0••••••1
從下往上依次寫得出的二進制爲110010
因爲IP地址的每一組是8位,所以正規的寫法是00110010(左邊用0補齊)
接下來二進制轉換10進制。
這裏有一個記憶要點。順序是從右往左。而不是從左往右,從左往右一次爲第0位,第1位,第2位......
由於是二進制,每一位滿2進1計算方法爲從
從右邊第一位開始×進制的n次方+下一位×進制的n次方+.......(這裏n爲從右到左的位數)
實例 1 1 0 0 1 0換成2進制
0×2^0+1×2^1+0×2^2+0×2^3+1×2^4+1×2^5=0+2+0+0+16+32=50
上述方法雖然簡單,但卻不是最快的,接下來我們就學習最科學的方法:
我們先要了解,二進制的每一位都對應了進制的n次方的問題;
比如,001=1。對應的是2^0=1.
010=2。對應的是2^1=2
011=3。對應的是1×2^0+1×2^1=1+2=3
100=4。對應的是1×2^2=4。
首先我們需要記憶每一位所對應的數值
比如我們要求50的二進制數我們發現
32+16+2=50。那麼我們就可以把32,16,2所對應的位數變爲1得出的二進制數值爲
0 0 1 1 0 0 1 0
十進制的50數換成八進制數
得出的八進制數位62。
同理,八進制換成10進制也是從右邊第一位開始×進制的n次方+下一位×進制的n次方+.......(這裏n爲從右到左的位數)
6 2
--------
1 0
得出八進制62的十進制爲 2×8^0+6×8^1=2+48=50
上述方法雖然簡單,但卻不是最快的,接下來我們就學習最科學的方法:
先將十進制數換成二進制數,再將二進制數換成八進制數
50的二進制數爲,00110010.因爲是八進制數,2^3=8,所以每三位就代表一個八進制數。我們就先把二進制數從右到左每三位隔開
0 0 0 | 1 1 0 | 0 1 0
-------------------------------------
0 6 2
000=0. 110的十進制爲6。 010的十進制爲2
得出八進制數位62
十進制與十六進制之間的換算也是一樣
十進制108換成16進制
得出的十六進制爲6C(這裏C代表12)
因爲十六進制從10到15分別用A,B,C,D,E,F來表示
十六進制換算成10進制的方法也是一樣 從右邊第一位開始×進制的n次方+下一位×進制的n次方+.......(這裏n爲從右到左的位數)
十六進制6C換算成十進制。
6 12
--------
1· 0
12×16^0+6×16^1=12+96=108
上述方法雖然簡單,但卻不是最快的,接下來我們就學習最科學的方法:
108換成二進制數,再將二進制數換成十六進制數
108的二進制數爲01101100
與八進制換十六進制的方法一樣。2^4=16,所以每4位代表一個16進制數,從右往左每4位劃分,不夠從左邊補零。
0110 | 1100
-------------------
0110爲十進制數6,1100爲十進制數12。
所以得出108的十六進制數爲6C(6 12)
本文全是按照博主的計算思路來寫的,倘若看不懂的歡迎留言 ,博主若看到,必定回覆。