学无先后,达者为师

网站首页 Python教程 正文

Python:十进制与二进制的转换

作者:01==零壹 更新时间: 2021-12-13 Python教程

以下内容主要用于自我学习,仅供大家参考。

整数的二 - 十进制转换:

b = input()
d = 0
for i in range(0,len(b)):
    if b[i] == '1':
        weight = 2 ** (len(b) - i - 1)
        d = d + weight
print(d)

在计算机中执行指数运算往往比单纯的加减乘除运算要复杂得多,因此也更加费时,为更快地完成进制转换,改进的程序如下: 

b = input()
d = 0
weight = 2 ** (len(b) - 1)
for i in range(0,len(b)):
    if b[i] == '1':
        d = d + weight
    weight = weight // 2
print(d)

以上程序先通过b = input()接收输入的二进制数,并用字符串的形式把这个数存储到变量b中。例如:输入一个二进制数1010,则b中存储的是字符串b = “1010”。

我们用单引号或双引号所界定的一串符号表示字符串。

R进制小数转十进制数:

可用partition()函数来找出小数点前面的字符串和小数点后面的字符串。

例如:bin = “1101.01”,(x,t,y)= bin.partition(‘.’),结果是x = ‘1101’,t = ‘.’,y = ‘01’。

整数的十 - 二进制转换:

x = int(input())
r = 0
Rs = []
while(x != 0):
    r = x % 2
    x = x // 2
    Rs = [r] + Rs
for i in range(0,len(Rs)):
    print(Rs[i],end = '')

Rs = r + Rs:获得一个列表结构(List)Rs,并把余数r加入列表的头部,r和Rs的位置不能调换。

def convert(x):
    if x < 2:
        return([x])
    r = x % 2
    return(convert(x // 2) + [r])
num = int(input())
Rs = convert(num)
for i in range(0,len(Rs)):
    print(Rs[i],end = '')

上述代码也可实现十进制转R(R < 10)进制,只需将2改为R即可。 

原文链接:https://blog.csdn.net/weixin_62707591/article/details/122116629

栏目分类
最近更新