十进制转二进制和二进制转十进制方法

2021-08-03 15:49:26 浏览数 (1)

代码语言:javascript复制
#十进制转二进制
'''
十进制转二进制是把十进制的数都处于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")

0 人点赞