目前我们所学的都是基于十进制。若想换成其他进制数,最简单的偏方是将十进制除以所需要的进制数。看接下来的实例:
将十进制的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)
本文全是按照博主的计算思路来写的,倘若看不懂的欢迎留言 ,博主若看到,必定回复。