版权声明:本文为博主原创文章,未经博主允许不得转载。 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))