进制之间的转换

进制转换

  • 进制之间的转换-二进制、八进制、十进制、十六进制
    • 一、基础内容
    • 二、进制转换
        • 二进制与十进制之间的转换
          • 二进制转十进制
        • 十进制转二进制
      • 二进制与八进制之间的转换
        • 二进制转八进制
        • 八进制转二进制
      • 二进制与十六进制之间的转换
        • 二进制转十六进制
        • 十六进制转二进制
      • 十进制与八进制、十六进制之间的转换
        • 十进制转八进制
        • 十进制转十六进制
        • 八进制转十进制
        • 十六进制转十进制
      • 八进制与十六进制的转换
    • 三、总结

进制之间的转换-二进制、八进制、十进制、十六进制

总结一下常见的进制,以及分享一下各进制之间的转换方法。

一、基础内容

二进制:计算机常用的进制,即逢二进一,借一为二。

       基数为0,1

八进制:逢八进一,借一为八。

       基数为0,1,2,3,4,5,6,7

十进制:常用进制,逢十进一。

       基数为0,1,2,3,4,5,6,7,8,9

十六进制:逢十六进一,借一为十六。

       基数为0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)

二、进制转换

二进制与十进制之间的转换

二进制转十进制

方法:把二进制数按权值展开、求和,即为十进制数
例:将二进制数110转换为十进制数:

在这里插入图片描述
二进制数第一位0与2⁰相乘:0✖2⁰=0
二进制数第二位1与2¹相乘:1✖2¹=2
二进制数第三位1与2²相乘:1✖2²=4
相加求和:0+2+4=6
即二进制数110转换为十进制数的结果为6

十进制转二进制

方法:将十进制数除以2取余,将得到的商继续除以2取余,直到商等于0为止,得到的余数从下往上读数,得到的即为由十进制转换成二进制数的结果
例:将十进制数53转换为二进制数
进制之间的转换_第1张图片
53÷2=26·····1
26÷2=13·····0
13÷2=6·······1
6÷2=3·········0
3÷2=1·········1
1÷2=·0········1
我们将得到的结果从下往上书写,得到转换后的二进制数为110101

二进制与八进制之间的转换

我们知道八进制数是逢八进一,其基数为0-7,我们采用二进制表示如下:

八进制数 二进制数
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

二进制转八进制

方法:一个八进制数能用三个二进制数表示,所以我们在二进制与八进制之间的转换采用取三合一法。

例:将二进制数10110011转换为八进制数
进制之间的转换_第2张图片
首先我们二进制数从右往左读,将3位划分为一组,最左边差位数用0补齐,将每组数的值读出来,按顺序写在一起就得到了所需的八进制数。
即二进制数10110011转换为八进制数为263

注意:此处得到的结果263并不是十进制数263。

八进制转二进制

方法:将每一位八进制数转换为3位二进制数。
例:将八进制数431转为二进制数:
进制之间的转换_第3张图片
由上表可知:
4的二进制数为100
3的二进制数为011
1的二进制数为001
将各八进制转换的结果按顺序书写得到的结果为:100011001

二进制与十六进制之间的转换

十六进制是逢十六进一,其基数为0-9,A-F,对应的二进制数如下表:

十六进制数 二进制数
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

二进制转十六进制

方法:与二进制转八进制相似,二进制转十六进制采用取四合一法。
例:二进制数100101100
进制之间的转换_第4张图片
从右往左读数,四个化为一组,差位用0补齐后,计算每一组的值,将得到的结果按顺序书写。
即二进制数100101100转为十六进制数为12C

十六进制转二进制

方法:将每一位十六进制数转换为4位二进制数
例:将十六进制数BF4转换为二进制:
进制之间的转换_第5张图片
由上表可知:
B对应的二进制数为1011
F对应的二进制数为1111
4对应的二进制数为0100
所以十六进制数BF4对应的二进制数为101111110100

PS.若是忘记八进制数与十六进制数对于的二进制数为多少,可以先将八进制数、十六进制数转换为十进制数,再由十进制数转为二进制数。

十进制与八进制、十六进制之间的转换

十进制转为二进制将十进制数除以2得到余数,再由商继续除以2得余数,直到商为0,将得到的余数从下往上书写,同理可得到十进制与八进制、十六进制的转换。

十进制转八进制

方法:十进制转为八进制将十进制数除以8得到余数,再由商继续除以8得余数,直到商为0,在将得到的余数从下往上书写
例:十进制数150转换为八进制数
进制之间的转换_第6张图片
150÷8=18·····6
18÷8=2········2
2÷8=0··········2
将得到的结果从下往上书写,得到十进制数150对应的八进制数位226

十进制转十六进制

方法:十进制转为十六进制将十进制数除以16得到余数,再由商继续除以16得余数,直到商为0,将得到的余数从下往上书写
例:将十进制数150转换成十六进制数
进制之间的转换_第7张图片
150÷16=9······6
9÷16=0·········9
将得到的结果按顺序书写,得到十进制数150对应的十六进制数位96

八进制转十进制

方法:由二进制转十进制可得,八进制转十进制即为将八进制数按权值展开,求和
例:将八进制数135转为十进制数
八进制数第一位5与8⁰相乘:5✖8⁰=5
八进制数第二位3与8¹相乘:3✖8¹=24
八进制数第三位1与8²相乘:1✖8²=64
相加求和:5+24+64=93
即八进制数135转换为十进制数的结果为93

十六进制转十进制

方法:同理可得,十六进制转十进制即为将十六进制数按权值展开,求和
例:将十六进制数A7转为十进制数
八进制数第一位7与16⁰相乘:7✖16⁰=7
八进制数第二位10(A)与8¹相乘:10✖16¹=160
相加求和:7+160=167
即十六进制数A7转换为十进制数的结果为167

八进制与十六进制的转换

八进制与十六进制之间的转换有两种方法

第一种:他们之间的转换可以先转成二进制然后再相互转换。

第二种:他们之间的转换可以先转成十进制然后再相互转换。

三、总结

  1. 其他进制转十进制:将二进制数、八进制数、十六进制数的各位数字分别乘以各自基数的(N-1)次方,其相加之和便是相应的十进制数,这是按权相加法。
  2. 十进制转其他进制:整数部分用除基取余法,小数部分用乘基取整法,然后将整数与小数部分拼接成一个数作为转换的最后结果。
  3. 二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足。
  4. 八进制转二进制:与二进制转八进制相反。
  5. 二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足。
  6. 十六进制转二进制:与二进制转十六进制相反。
  7. 八进制转十六进制:通常将八进制转换成二进制,然后通过二进制再转换成十六进制。
  8. 十六进制转八进制:通常将十六进制转换成二进制,然后通过二进制再转换成八进制

参考文献:https://blog.csdn.net/liangxw1/article/details/78535545

你可能感兴趣的:(前端进步亿点点,算法)