进制之间的换算(华为笔记回顾)

目前我们所学的都是基于十进制。若想换成其他进制数,最简单的偏方是将十进制除以所需要的进制数。看接下来的实例:

将十进制的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)

 

 

本文全是按照博主的计算思路来写的,倘若看不懂的欢迎留言 ,博主若看到,必定回复。

 

 

           

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章