二进制、八进制、十进制和十六进制之间的相互转换

目录

一、什么是进制?

二、十进制与二进制之间的相互转换

1.十进制转换成二进制

2.二进制转换成十进制

三、十进制与八进制之间的相互转换

1.1.十进制转换八进制

1.2.八进制转换十进制

四、十进制与十六进制之间的相互转换

1.1.十进制转换十六进制

1.2.十六进制转换十进制

五、二进制与八进制、十六进制之间的相互转换

1.二进制转换八进制

2.二进制转换十六进制

结尾


一、什么是进制?

进制也就是 进位计数值,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳 计数法 ,唱票时常用的“正”字计数法,以及类似的tally mark计数。

进制分为四种:二进制、八进制、十进制、十六进制。进制是什么,进制就是当一个数,满足该进制的最大数时,该数前位+1,本位清零。

二、十进制与二进制之间的相互转换

在所有的进制转换中,第一位是从此“0”开始算起。

1.十进制转换成二进制

可以用除二取余的方法

首先对一个数进行一次除二,得出一个商和余数(没有余数,写0),然后再次除二余数(没有余数,写0),进行重复操作,直至得到的商为0位置,所得到的余数,最后反向取值,就是二进制数。

如图所示:

二进制、八进制、十进制和十六进制之间的相互转换_第1张图片

反向取值 48的二进制就是’110000‘。

也有较简单的方法:

2^0=1   2^1=2  2^2=4  2^3=8  2^4=16  2^5=32  2^6=64  2^7=128  2^8=256

比如一个十进制的数255转化为二进制:

255=    128   +   64   +    32    +   16   +     8    +     4    +   2    +    1         转化为

255=   2^7   +   2^6   +  2^5   +   2^4   +   2^3  +   2^2  +  2^1  +  2^1

            1             1         1             1            1            1         1           1

所以255的二进制为’11111111‘.

如果相加的过程中,没有这个数,那么二进制中,相应的位置就为零

如例:

84=64+0+16+8+0+0+0

       1    0   1   1  0  0   0             所以转化为二进制为’1011000‘。

2.二进制转换成十进制

二进制转化为十进制,就是与上面的算法反过来。

例子:如要想二进制1010111010转为十进制,,计算如下所示:

    1                0                1               0               1                1                  0                 1               0

  2^8           2^7          2^6               2^5           2^4            2^3               2^2               2^1           2^0

1* 2^8  +   0*2^7  +  1*2^6     +     1*2^5  +   1* 2^4  +    0*2^3    +     1*2^2     +    0*2^1   +      2^0

=346

三、十进制与八进制之间的相互转换

1.1.十进制转换八进制

可以用除八取余的方法

首先对一个数进行一次除八,得出一个商和余数(没有余数,写0),然后再次除八取余数(没有余数,写0),进行重复操作,直至得到的商为0位置,所得到的余数,最后反向取值,就是八 进制数。

如图所示:

二进制、八进制、十进制和十六进制之间的相互转换_第2张图片

 所以,’135‘转换为八进制,反取为’207‘

1.2.八进制转换十进制

从八进制转换成十进制,就1.1中的135举例

例子:八进制207转化为十进制             

   2                         0                        7

8^2                       8^1                    8^0

2*8^2        +       0*8^1         +      7*8^0    =135     十进制为’135‘

四、十进制与十六进制之间的相互转换

1.1.十进制转换十六进制

在进制转换的过程基本上是相同的,但是还有一个是比较特殊的

在十六进制中大于10的数表示“10=A”、“11=B”、“12=C”、“13=D”、“14=E”、“15=F”

所以这一个可以用除16取余的方法

首先对一个数进行一次除16,得出一个商和余数(没有余数,写0),然后再次除16取余数(没有余数,写0),进行重复操作,直至得到的商为0位置,所得到的余数,最后反向取值,就是16 进制数。

如图所示:

二进制、八进制、十进制和十六进制之间的相互转换_第3张图片

 所以十进制数1684转换成八进制,取反为”694“。

1.2.十六进制转换十进制

例子:借用上面的例子算十六进制”694“

    6                        9                             4

    16^2                 16^1                         16^0

   6*16^2       +        9*16^1     +                4*16^0=1684

所以十六进制转换成十进制就是”1684“。

五、二进制与八进制、十六进制之间的相互转换

1.二进制转换八进制

原理:八进制数的一位是二进制数的三位。

例子:将”1101101010110“二进制转换成八进制(从最底层开始数,三个为一组,如果最高位不够,在高位前加”0“。)

001             101             101                   010                110     

1*2^0    1*2^2+1*2^0   1*2^2+1*2^0    1*2^1           1*2^2+1*2^1  

      1                 5             5                        2                   6

所以转换成八进制为“15526”。

2.二进制转换十六进制

原理:十六进制数的一位是二进制数的四位。

例子:将”1101101010110“二进制转换成十六进制(从最底层开始数,四个为一组,如果最高位不够,在高位前加”0“。)

  0001                      1011                         0101                 0110

1*2^0         1*2^3+1*2^2+1*2^0         1*2^2+1*2^0       1*2^2+1*2^1

     1                              B                              5                        6

   所以转换成十六进制为“1B56”。


结尾

当然,现在基本上都有了计算器,遇见一些比较繁琐的转换也可以轻松转换。

你可能感兴趣的:(数据结构)