【专题】进制转换

进制转换

1、十进制转其他进制

十进制 转 二进制

使用 bin() 函数可以将十进制整数转换为二进制字符串,前缀为 '0b'

decimal_number = 10
binary_string = bin(decimal_number)
print(binary_string)  # 输出: 0b1010【前面会有0b标志】
十进制 转 K进制
a,b=list(map(int,input().split()))
a=int(a)
b=int(b)

def to_k(a,b):
    temp=[]
    while a!=0:
        if a%b < 10:
            temp.append(str(a%b))
        else:
            temp.append(chr(a%b - 10 + ord('A') ))
        a=int(a/b)
    temp.reverse()
    return ''.join(temp)

print(to_k(a,b))
---------------------------
输入:6 2 # 6 进制转为 2进制
输出:110
---------------------------

2.2、其他进制转十进制

二进制 转 十进制

使用 int() 函数并指定基数为 2。

注意:a=int(str(2022),16),含义:得到一个十六进制数,并将其转换回整数

binary_string = '1010'
decimal_number = int(binary_string, 2)
print(decimal_number)  # 输出: 10
K进制转十进制
import math

a,b = input().split()
a=str(a)
b=int(b)

def k_to(a,b):
    k=0
    result=0
    a=a[::-1]
    for i in range(len(a)):
        char=a[i]
        if char<='9' and char>='0':
            char=int(char)
            result+=char*(int(math.pow(b,k)))
        else:
            char=int((ord(char)-ord('A')+10))
            result+=char*(int(math.pow(b,k)))
        k+=1
    return result

print(k_to(a,b))
-------------------------
输入:110 2	输入:A12 16
输出:6		输出:2578
-------------------------

你可能感兴趣的:(算法)