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

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

作者: 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. 十六进制转八进制

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

    相关文章

      网友评论

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

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