#十进制转二进制
'''
十进制转二进制是把十进制的数都处于2得到的结果在除以2,直到除的结果是0为止,把所有的余数从后往前排列就是得到的二进制
125 /2 =62 1
62 / 2 = 31 0
31 /2 = 15 1
15 /2 = 7 1
7 / 2 = 3 1
3 / 2 =1 1
1 /2 = 0 1
二进制是:1 1 1 1 1 0 1
用bin()函数查看对应的值的二进制
print(bin(125))
'''
def int_of_bin(num :int):
list =[]
print(bin(num))
while True:
if num // 2>=0:
list.append(num % 2 )
num //=2
if num == 0:
break
else:
break
res = '0b'
for i in list[::-1]:
res += str(i)
print(res)
#二进制转十进制
'''
二进制转十进制,是最高位的数乘以2的位次-1次方
1 1 1 1 1 0 1
第一位:1 * 2**6 =64
第二位:1 * 2**5 = 32
第三位:1 * 2**4 = 16
第四位:1 * 2**3 = 8
第五位:1 * 2**2 = 4
第六位:0 * 2**1 = 0
第七位:1 * 2**0 = 1
十进制数是:64+32+16+8+4+0+1==125
'''
def bin_of_int(binStr):
strNew = str(binStr).split('0b')[-1]
sum = 0
for i in range(len(strNew)):
sum1 = int(strNew[i])* 2 ** (len(strNew) -1-i)
sum +=sum1
print(sum)
int_of_bin(61)
bin_of_int("0b111101")