首页 > 代码库 > 【基础】进制转换

【基础】进制转换

 

1、什么是二进制、八进制、十进制、 十六进制?

  我们平常生活中常用的是10进制,就是逢10进1;

  二进制:逢二进一                由0、1组成;

  八进制:逢八进一                由0-7组成;                                      前面以o开头的数字表示八进制                    在c语言中用%o

    十进制:逢十进一                由0-9组成;                                                                                                在c语言中用%d

  十六进制:逢十六进一          由0-15组成,10-15分别对应A-F;         前面以ox开头的数字表示十六进制                在c语言中用%x

 

2、二进制、八进制、十六进制与十进制间的转换

(1)二进制、八进制、十六进制转十进制间

 十进制的表达如:(12345)10  =1*104+2*103+3*102+4*101+5*100=12345

 八进制转换为十进制:(12345)10=1*84+2*83+3*82+4*81+5*80=5349

   二进制转十进制:(10101)10=1*24+0*23+1*22+0*21+1*20=21

 十六进制转十进制:(1F2A5)10=1*164+15*163+2*162+10*161+5*160=127653

(2)十进制间转二进制、八进制、十六进制

   十进制转二进制:用10进制的数一直除以2,直到除数小于2为止,然后把余数倒序排列

    25/2 ---------12余1

    12/2 ---------6余0

    6/2  ---------3余0

    3/2  ---------1余1

     1

 倒序排列得到(25)2=11001

   十进制转八进制:同理用10进制的数一直除以8,直到除数小于8为止,然后把余数倒序排列

    168/8 ----------16余0

    16/8   ----------2余0

      2

   (168)8=200

 十进制转十六进制:同理用10进制的数一直除以16,直到除数小于16为止,然后把余数倒序排列,大于10-15的数字用A-F表示

   127653/16  ----------7978余5

   7978/16     ----------498余10      (10用A表示)

   498/16      ------------31余2

    31/16       ------------1余15        (15用F表示)

    1

   (127653)16=1F2A5

  补充:用程序实现任一十进制整数转换为二进制和十六进制树(这是我去超图的机试题,我当时用C#实现的,下面用C语言实现)

      

3、二进制与八进制的互相转换

    二进制表示八进制,二进制用三位(23=8)表示八进制的数,如下:

    二进制                      八进制               

  000                           0

  001                           1

  010                           2

  011                           3

  100                           4

  101                           5

  110                           6

  111                           7

  (1)八进制转二进制:把每一位八进制的数换为三位的二进制。如下:

  123= 001 010 011=1010011

      (2)二进制转八进制:从低位到高位分成3位为一组,高位不够三位的用0补齐,然后替换三位二进制位为八进制的数。如下:

      (1010011)8= 1 010 011  =   001 010 011=123 

4、二进制与十六进制的互相转换

      二进制表示十六进制,二进制用四位(24=8)表示十六进制的数,如下:

      二进制            十六进制               二进制            十六进制

   0000                0                      0001                   1

   0010                2                      0011                   3

   0100                4                      0101                   5

   0110                6                      0111                   7

      1000                 8                     1001                   9

      1010                 A                     1011                   B

      1100                 C                     1101                   D

  1110       E        1111                   F

      (1)十六进制转二进制:把每一位十六进制的数换为四位的二进制。如下:

      (1A2B3C)2=0001 1010 0010 1011 0011 1100=110100010101100111100

  (2)二进制转十六进制:从低位到高位分成4位为一组,高位不够4位的用0补齐,然后替换4位二进制位为十六进制的数。如下:

  (110100010101100111100)16=1 1010 0010 1011 0011 1100=1A2B3C

5、小数的进制转换

6、数据在计算机中的存储方式

7、数据类型的原理

 

      ……

【C语言基础】知其然知其所以然  

                            

【基础】进制转换