python学航_进制转换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuehangpy/article/details/90200239

进制转换

详细进制转换

十进制转二进制

方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。

print("十进制转二进制")
print(divmod(150,2))
print(divmod(75,2))
print(divmod(37,2))
print(divmod(18,2))
print(divmod(9,2))
print(divmod(4,2))
print(divmod(2,2))
print(divmod(1,2))

二进制为10010110 商为0为止,余数为2

二进制转十进制

方法为:把二进制数按权展开、相加即得十进制数。

10010110

1*2**7   0*2**6  0*2**5  1*2**4  0*2**3  1*2**2  1*2**1  0*2**0
  128      0        0      16     0        4        2        0      =150
print("二进制转十进制")
print(1*2**7+0*2**6+0*2**5+1*2**4+0*2**3+1*2**2+1*2**1+0*2**0)

二进制转八进制

方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。

二进制 10010110

拆开 010 010 110 从有向左转换 不足补0

展开求和

    0*2**2+1*2**1+0*2**0  0*2**2+1*2**1+0*2**0  1*2**2+1*2**1+0*2**0
               2              2              6            =226
print("二进制转八进制")
print((0*2**2+1*2**1)*10**2+(0*2**0+0*2**2+1*2**1)*10**1+0*2**0+1*2**2+1*2**1+0*2**0)

八进制转二进制

方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。

print("八进制转二进制")
print(divmod(2,2),divmod(2,2),divmod(6,2))
print(divmod(1,2),divmod(1,2),divmod(3,2))
print((0,0),(0,0),divmod(1,2))

010 010 110

扫描二维码关注公众号,回复: 6230821 查看本文章

二进制转十六进制

方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。

1 0010 1100

不足补0 0001 0010 1100

0*2**3+0*2**2+0*2**1+1*2**0   0*2**3+0*2**2+1*2**1+0*2**0    1*2**3+1*2**2+0*2**1+0*2**0
        1                                    2                     12                   = 12c    

a=10 b=11 c=12 d=13 e=14 f=15

十六进制转二进制

方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。

12c = 1 2 12
0001 0010 1100

print("二进制转十六进制")
print(divmod(1,2),divmod(2,2),divmod(12,2))
print((0,0,0,1),divmod(1,2),divmod(6,2))
print((0,0,0,1),(0,0,1,0),divmod(3,2))
print((0,0,0,1),(0,0,1,0),divmod(1,2))

猜你喜欢

转载自blog.csdn.net/xuehangpy/article/details/90200239