美文网首页
二进制、八进制、十进制、十六进制--转换

二进制、八进制、十进制、十六进制--转换

作者: Change_yourself | 来源:发表于2018-09-09 22:47 被阅读0次

1. 二进制 <=> 十进制

  • 二进制 转 十进制
    eg: 10101.01 => 21.25
    计算方式:

1 * 2^0 + 0 * 2^1 + 1 * 2^2 + 0 * 2^3 + 1 * 2^4 + 0 * 2^-1 + 1 * 2^-2 = 1 + 0 + 4 + 0 + 16 + 0 + 0.25 = 21.25

说明:二进制数的整数部分从右到左计算(n * 2^0 + n1 * 2^1 + n2 * 2^2.......),小数部分从左到右计算(n * 2^-1 + n1 * 2^-2 + n2 * 2^-3.......),然后相加所得就是十进制数。

  • 十进制 转 二进制
    eg: 30.69 => 11110.101100001010
    计算方式:

先计算整数部分:
30 / 2 = 15 ----余0
15 / 2 = 7 ----余1
7 / 2 = 3 ----余1
3 / 2 = 1 ----余1
1 / 2 = 0 ----余1
整数部分转为二进制数为 11110

再计算小数部分:
0.69 * 2 = 1.38 -----取整数 1
0.38 * 2 = 0.76 -----取整数 0
0.76 * 2 = 1.52 -----取整数 1
0.52 * 2 = 1.04 -----取整数 1
0.04 * 2 = 0.08 -----取整数 0
0.08 * 2 = 0.16 -----取整数 0
0.16 * 2 = 0.32 -----取整数 0
0.32 * 2 = 0.64 -----取整数 0
0.64 * 2 = 1.28 -----取整数 1
0.28 * 2 = 0.56 -----取整数 0
0.56 * 2 = 1.12 -----取整数 1
0.12 * 2 = 0.24 -----取整数 0
如此计算下去,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。

说明:十进制转二进制,整数部分除2取余,小数部分乘2取整,之后整数部分余数从下往上依次为二进制的高位到低位,小数部分的取整从上往下依次为二进制的小数部分高位到低位。

2. 二进制 <=> 八进制

  • 二进制 转 八进制
    eg: 10010110 => 226
    计算方式:

110 (从右数三位)
0 * 2^0 + 1 * 2^1 + 1 * 2^2 = 0 + 2 + 4 = 6
010 (从右数 第4位到第6位)
0 * 2^0 + 1 * 2^1 + 0 * 2^2 = 0 + 2 + 0 = 2
010 (从右数 第7位到第9位,不足补0)
0 * 2^0 + 1 * 2^1 + 0 * 2^2 = 0 + 2 + 0 = 2
转换的八进制为 226

说明:二进制转八进制,从右到左,三位二进制算一次,不足三位补0,然后把所得值 从左到右排列即是 八进制数。

  • 八进制 转 二进制
    eg: 226 => 10010110
    计算方式:

2 (从左数,第一位)
2 / 2 = 1 ----余数0
1 / 2 = 0 ----余数1
转换二进制数为: 010
2 (从左数,第二位)
2 / 2 = 1 ----余数0
1 / 2 = 0 ----余数1
转换二进制数为: 010
6 (从左数,第三位)
6 / 2 = 3 ----余数0
3 / 2 = 1 ----余数1
1 / 2 = 0 ----余数1
转换二进制数为: 110
转换的二进制数为:10010110

说明:八进制转二进制,每位八进制数对应三位二进制数,不足在高位补0,每位八进制数是除2取余,且得到的余数的排序是从下往上组成二进制数。此时如果这个八进制的数在高位,那么得到的三位二进制数也在高位。
图示:

八进制转二进制7e.jpg

3. 二进制 <=> 十六进制

  • 二进制 转 十六进制
    eg:11010010 => D2
    计算方式:

0010(从右边数4位)
0 * 2^0 + 1 * 2^1 + 0 * 2^2 + 0 * 2^3 = 0 + 2 + 0 + 0 = 2
1101(从右边数第5位至第8位)
1 * 2^0 + 0 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 + 0 + 4 + 8 = 13
转换的十六进制为:D2

注: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
说明: 二进制数转换为十六进制数,从二进制数低位开始算起,每4位对应一个十六进制数,不足4位补0,且低位与低位,高位与高位一一对应。此时,每4位二进制数计算方式等同上面转为十进制数的计算方式。

  • 十六进制 转 二进制
    eg:D2 => 11010010
    计算方式:

13 / 2 = 6 -----余 1
6 / 2 = 3 ------余 0
3 / 2 = 1 ------余1
1 / 2 = 0 ------余 1
D转换为二进制数为:1101
2 / 2 = 1 ------余 0
1 / 2 = 0 ------余 1
2 转换为二进制数为:0010
end 转换的二进制数为: 11010010

说明: 十六进制转换二进制,每个高位数对应4个二进制高位数,每个低位数对应4个二进制低位数,每个十六进制数对2取余,余数从下往上排序,不足在高位补0.
图示:

十六进制662.jpg

4.十进制转八进制 或者 十六进制有两种方法

  • 间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制
  • 直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止

    图示: 进制73f0013f.jpg

5. 八进制或者十六进制转成十进制

计算方法:直接把八进制、十六进制数按权展开、相加即得十进制数

图示: 二八进制0----2d5628535687e.jpg

6. 十六进制转八进制

计算方式:先转成二进制 或 十进制,再互转。

相关文章

  • 进制转换

    十进制转换为二进制 185 = 10111001 十进制转换为八进制 185=271 十进制转换为十六进制 185...

  • JAVA基础第五天

    进制 进制转换其他进制转十进制 十进制转其他进制 二进制转八进制,十六进制 八进制转二进制

  • 最常见的进制之间的转化

    1.首先是二进制,八进制,十六进制转十进制. 2:八进制,十进制,十六进制转二进制. 3: 二进制,八进制,十进制...

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

    十进制转换成二进制、八进制、十六进制 方法:使用十进制的数不断除以n(需要转换的进制类型,如二进制n=2、八进制n...

  • Python基础

    1.0b代表二进制,0o代表八进制,0x代表十六进制;二进制转换bin(),八进制转换oct(),十进制转换int...

  • 【iOS 开发】二进制、十进制、十六进制相互转换的方法

    十进制转换为二进制 十进制转换为十六进制 二进制转换为十六进制 十六进制转换为二进制 二进制转换为十进制 作者:J...

  • python 的进制转换

    十进制, 二进制相互转换 十进制转换为二进制 二进制转换为十进制 十进制, 八进制相互转换 十进制转换为八进制 八...

  • 各个进制的转换

    各个进制转换成十进制 十进制转换成二进制 二进制转换成八进制 / 十六进制 常用的一些2的幂的值

  • 常量与进制转换

    常量类型 进制转换 1、十进制与二进制之间的转换 2、八进制与十进制、二进制之间的转化 3、十六进制与十进制、二进...

  • Java 数据类型 类型转换 运算符

    常用的进制二进制八进制十进制十六进制进制之间是可以互相转换的。 进制如何转换 以二进制和十进制进制为例10 -> ...

网友评论

      本文标题:二进制、八进制、十进制、十六进制--转换

      本文链接:https://www.haomeiwen.com/subject/jvwdgftx.html