进制的转换

二进制数: 0或1  表示为 0b xxx

八进制数: 0,1,2,3,4,5,6,7  表示为 0o xxx

十进制数:0,1,2,3,4,5,6,7,8,9 表示为  默认为十进制

十六进制数: 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f  0x xxx

 

二进制转十进制:

   二进制数中每8个比特位为一个字节,每个位置只能是1或0.如二进制数 1111 1111 

   从左至右分别对应十进制数为  1*(2**7)=128,  1*(2**6)=64, 1*(2**5)=32  1*(2**4)=16, 1*(2**3)=8, 1*(2**2)=4, 1*(2**1)=2, 1*(2**0)=1  (对应位的二进制数是1就乘1, 是0就乘0)

   再累加得到和 128+ 64+ 32+ 16+ 8+ 4+ 2+ 1 = 255       即 二进制数 1111,1111 对应的十进制数为 255

十进制转二进制:

  方法一:

    除2取余法:                                255 ÷  2  = 127..........1

                    127 ÷ 2  =  63............1

                  63  ÷ 2  =   31............1

                  31  ÷ 2  =   15............1

                  15  ÷  2  =    7 ...........1

                     7 ÷  2  =    3  ..........1

                     3 ÷  2   =   1 ...........1

                    1            

                  直至除至小于2自下而上取得一个商和7个余数(1或0)

 

   方法二:

      凑数法: 

        255 = 128 +64 + 32+ 16+ 8+ 4+ 2+ 1  所以对应的二进制位数都为1

        250 =  128+ 64+ 32+ 16+ 8+ 0+ 2+ 0   所以对应的是   1111,1010

 

八进制转十进制:

  与二进制相似:   例0o  456  对应的十进制数: 6×(8**0) +  5×(8**1)+ 4×(8**2) = 302

十进制转八进制: 

  同样除数取余法: 

        302 ÷ 8 = 37....6

        37 ÷  8 = 4......5 

              4  

        直至商小于8   自上而下得到 8进制数为 456 

 

十六进制转十进制:

  与二进制相似: 0x FFF  =  15×(16**2)+15×(16**1)+15×(16**0)  = 4095

十进制转十六进制:

  除数取余法:

      4095 ÷ 16 = 255......15

        255 ÷ 16 =  15 ......15

      自下而上得到对应的十六进制数为 15,15,15 即 FFF

  

        

二进制转八进制:

  (每三位二进制数对应一个八进制数)   例如   0b 1010,1001  看做   010,101,001 (从右至左每三位对应一个八进制数左边不够三位补0)

  010===>> 0×(2**2)+1×(2**1)+0×(2**0) =2  101===>>1×(2**2)+0×(2**1)+1×(2**0)=5     001===>>0×(2**2)+0×(2**1)+1×(2**0) = 1

  所以二进制数0b 1010,1001 对应的 八进制数为251

 

八进制转二进制: 

                  2==>>010,     5==>>101 ,      1==>> 001    所以对应的二进制数为10101001

 

二进制转十六进制:

  从左至右看每四位二进制数对应一位十六进制数,不够四位左边补0

  10101101 ====>>>1010,1101 

  1010 ==>  1×(2**3) + 0×(2**2)+1×(2**1)+0×(2**0) =  A(就是十)  同理: 1101===> 1×(2**3) + 1×(2**2)+ 0×(2**1)+ 1×(2**0) =  D(十三)

  所以 二进制0b 10101101  对应的十六进制数为 0x AD

十六进制转二进制:

  A 对应的二进制数为 1010    D对应的二进制数为 1101

  所以转换为二进制数为 10101101

    

八进制转十六进制:

  八进制不能直接转换为二进制,一般将八进制先转换为二级制再转为十六进制

十六进制转八进制:

  同理先将十六进制转换为二进制,再转换为八进制

 

posted @ 2022-03-20 16:47  南山朝隮  阅读(1357)  评论(0)    收藏  举报