python任意进制转换_Python实现任意进制之间的转换

在日常生活中我们频繁使用到数学的进制,如季度逢三进一,星期逢七进一;×××、小时使用12进制,每天使用24进制,每月使用30进制,分秒使用60进制,一年使用360进制等等;在编程过程中我们经常需要转换进制,虽然Python已经内置了常用进制转换函数,如int,bin,hex,oct;但是如果我们需要转换成其他进制怎么办呢?

我们知道,十进制转换成二进制时,使用“除2取余,逆序排列”即可。二进制转换成十进制时按权展开,即可得到十进制。类似地可以实现十进制转换成任意进制,任意进制也可以转换成十进制;通过十进制进行中转,即可实现任意进制数之间的转换了。

下面实现一个20进制内的任意转换(PS:需要转换成更多的进制,只需添加相应的字符即可)

#将十进制数转换成任意进制20进制以内,任意进制只需添加不同的符号即可

def decimalToAny(num,n):

baseStr = {10:"a",11:"b",12:"c",13:"d",14:"e",15:"f",16:"g",17:"h",18:"i",19:"j"}

new_num_str = ""

while num != 0:

remainder = num % n

if 20 > remainder > 9:

remainder_string = baseStr[remainder]

elif remainder >=20:

remainder_string = "("+str(remainder)+")"

else:

remainder_string = str(remainder)

new_num_str = remainder_string+new_num_str

num = num / n

return new_num_str

#将任意进制数转换成十进制

def anyToDecimal(num,n):

baseStr = {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,

"a":10,"b":11,"c":12,"d":13,"e":14,"f":15,"g":16,"h":17,"i":18,"j":19}

new_num = 0

nNum = len(num) - 1

for i in num:

new_num = new_num  + baseStr[i]*pow(n,nNum)

nNum = nNum -1

return new_num

目前只实现了简单的功能,后续慢慢完善;欢迎大家探讨!

相关推荐

Meta开源Ego-Exo4D数据集:如何用1400小时多模态视频训练你的AI模型

Meta开源的Ego-Exo4D数据集包含1400小时多模态视频,涵盖第一人称和第三人称视角、眼动追踪、IMU传感器等多种模态,是AI模型训练的宝贵资源。本文详细介绍了从数据集下载、预处理到模型训练的全流程,帮助研究者高效利用这一多模态数据集进行AI模型开发。

weixin_29159441的博客 292

python实现各进制转换的总结大全

主要给大家总结了python实现各进制转换的相关资料,其中包括字符串与十六进制转换、内置函数hex()与进制互转等相关内容,需要的朋友可以参考借鉴,下面来一起看看吧。

Python实现任意进制转换算法

进制转换是计算机科学中的基础知识之一,而Python作为一种易于学习和使用的编程语言,可以很方便地实现任意进制转换算法。本文将介绍利用Python实现十进制转N进制的算法,并提供相应的源代码。通过理解算法思路和实现细节,我们可以更好地理解进制的概念和计算方法。需要注意的是,代码中也实现了对输入num和N的合法性检查,如果不符合要求将会抛出异常。十进制数是我们常见的数字表示方法,而对于N进制数,其每位上的数字都是介于0到N-1之间的整数。可以看到,经过转换后,数字都被正确地转换成了对应的N进制数。

uote_e的博客 1209

python进制转换

Python中,可以使用内置函数来进行进制转换。函数,指定进制参数来将二进制、八进制、十六进制转换为十进制。注意:二进制、八进制和十六进制数,都必须用字符串形式表示。函数,分别将十进制转换为二进制、八进制和十六进制。

2203_75758128的博客 8176

Python:不同进制的转换整理

Python不同进制的转换整理

不吃鱼的猫的博客 3831

python十进制转换任意进制_Python实现任意进制之间转换

在日常生活中我们频繁使用到数学的进制,如季度逢三进一,星期逢七进一;×××、小时使用12进制,每天使用24进制,每月使用30进制,分秒使用60进制,一年使用360进制等等;在编程过程中我们经常需要转换进制,虽然Python已经内置了常用进制转换函数,如int,bin,hex,oct;但是如果我们需要转换成其他进制怎么办呢?我们知道,十进制转换成二进制时,使用“除2取余,逆序排列”即可。二进制转换成...

weixin_39998521的博客 1934

python编写程序转换进制_Python实现任意进制之间转换

在日常生活中我们频繁使用到数学的进制,如季度逢三进一,星期逢七进一;生肖、小时使用12进制,每天使用24进制,每月使用30进制,分秒使用60进制,一年使用360进制等等;在编程过程中我们经常需要转换进制,虽然Python已经内置了常用进制转换函数,如int,bin,hex,oct;但是如果我们需要转换成其他进制怎么办呢?我们知道,十进制转换成二进制时,使用“除2取余,逆序排列”即可。二进制转换成十...

weixin_34321609的博客 1430

python任意进制转换代码_Python实现任意进制之间转换

在日常生活中我们频繁使用到数学的进制,如季度逢三进一,星期逢七进一;生肖、小时使用12进制,每天使用24进制,每月使用30进制,分秒使用60进制,一年使用360进制等等;在编程过程中我们经常需要转换进制,虽然Python已经内置了常用进制转换函数,如int,bin,hex,oct;但是如果我们需要转换成其他进制怎么办呢?我们知道,十进制转换成二进制时,使用“除2取余,逆序排列”即可。二进制转换成十...

weixin_39523280的博客 1999

Python实现任意进制之间转换

在日常生活中我们频繁使用到数学的进制,如季度逢三进一,星期逢七进一;×××、小时使用12进制,每天使用24进制,每月使用30进制,分秒使用60进制,一年使用360进制等等;在编程过程中我们经常需要转换进制,虽然Python已经内置了常用进制转换函数,如int,bin,hex,oct;但是如果我们需要转换成其他进制怎么办呢? 我们知道,十进制转换成二进制时,使用“除...

weixin_33769207的博客 893

可能是最优雅的任意进制转换python实现

def trans_map(cint): if cint < 0: print "不合法" return elif cint < 10: return cint elif cint >= 10: return chr(cint - 10 + 65) # 将一个m进制的数转换为一个n进制...

dhl942702882的博客 1878

python十进制转换_Python任意进制转换

defdecimalToAny(num,n):baseStr= {10:"a",11:"b",12:"c",13:"d",14:"e",15:"f",16:"g",17:"h",18:"i",19:"j"}new_num_str= ""while num !=0:remainder= num %nif 20 > remainder > 9:remainder_string=baseStr[rema...

weixin_39528029的博客 671

python3进制转换原理

文章目录一、进制转换函数二、 一、进制转换函数 我们常见的有二进制、八进制、十进制和十六进制。在python里面分别 二、

洛阳山 2317

编程-python-十进制与其他进制转换

1.python的十进制与任意进制转换任意进制转换成十进制 print(int("54", 8)) # 表示把8进制的54转换成十进制数并输出结果。 # 8可以是2、8,10,16等进制数 1.1 将十进制转换任意进制 def f(n,x): a=[0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'] b=[] while True: s=n//x y=n%x b=b+[y]

认真学代码的shell 7034

python常见进制转换方法

其中比较常用到的是python的内置函数进行进制的转换,一般使用内置函数进行转换的时候是先将控制台输入的字符串或者是自定义的字符串先转换为10进制然后将10进制转换为其他的进制,常见的是二进制、十进制、八进制、十六进制之间转换,其中遵循一个原则是:其他进制转为十进制使用int函数,其他进制转为二进制使用bin函数,其他进制转为八进制使用oct函数,其他进制转为十六进制转为hex函数,并且是借助于10进制作为中间的桥梁进行转换,也就是使用到int()函数.

frighting_ing的博客 2万+

非常详细和简洁的任意进制转换python实现

最近笔试面试也遇到这种进制转换的题,来总结一下! 任意进制转换为10进制 举例: 二进制:1101 转为十进制为:从最低位(从左到右)开始遍历,1 * 2^0 + 0 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 +0 + 4 + 8 = 13 三进制:2101 转为10进制为:1 * 3^0 + 0 * 3^1 + 1 * 3^2 + 2 * 3^3 = 1 + 0 + 9 + 54 = 64 总结出规律,从低位到高位,每一位乘以权重,再相加,权重是进制的位数次方 def anyToTen(

rainMan的博客 5786

任意进制与十进制转换 (含小数)

python 任意进制与十进制转换 (含小数) def changeDecToR(num, r=2): """十进制转为R进制 整数部分:“除以R取余”法 小数部分:“乘以R取整”法 :param num: 需要转换的十进制数 :param r: 目标进制 :return: 转后后的进制值 """ lstInt = [] lstFloat = [] _int = int(nu...

hunter_wyh 1470

python中常见进制之间转换

很多情况下需要进行不同进制之间转换,其中比较常用到的是python的内置函数或者是format函数进行进制的转换,一般使用内置函数进行转换的时候是先将控制台输入的字符串或者是自定义的字符串先转换为10进制然后将十进制转换为其他的进制,常见的是二进制、十进制、八进制、十六进制之间转换,其中遵循一个原则是:其他进制转为十进制使用int函数,其他进制转为二进制使用bin函数,其他进制转为八进制使用oct函数,其他进制转为十六进制转为hex函数,并且是借助于10进制作为中间的桥梁进行转换,也就是使用到int函数

二哈 4397

python 进制转换

文章目录前言一、Python提供的进制转换方法1.二进制转十进制2.八进制转十进制3.十六进制转十进制4.十进制转十六进制5.十进制转二进制6.十进制转八进制二、自定义进制转换1.转十进制2.十进制转七进制总结 前言 十进制是我们常用的数字形式,但机器使用的却是二进制,八进制,十六进制之类的,所以进制转换是基础要求,很多编程语言提供的有进制转换的方法,下面我们开始学习 一、Python提供的进制转换方法 1.二进制转十进制 s = '1001' print(int(s,2)) 结果如下: in..

weixin_45659364的博客 2万+

1123581321递归算法java_十进制和任意进制之间的转化

python十进制和任意进制转化注: int可以在2-36进制到10进制的转换,默认超过10后采用小写的abc字符这里的是 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" 有所区别#-*-coding:utf-8-*-"""2-62进制整数和10进制之间转换"""BASES="0123456789ABCD...

weixin_42470300的博客 363

数据结构与算法(Python版)八:栈的应用(十进制转换为二进制)

所谓的“进制”, 就是用多少个字符来表示整数 十进制是0~9这十个数字字符,二进制是0、 1两个字符 十进制转换为二进制, 采用的是“除以2求余数”的算法 将整数不断除以2,每次得到的余数就是由低到高的二进制位 “除以2”的过程, 得到的余数是从低到高的次序, 而输出则是从高到低, 所以需要一个栈来反转次序 def divideBy2(decNumber): remstack = Stack() while decNumber > 0: rem = decNumbe

神薯片 5922

WIFI智能开关原理图和PCB.rar

WIFI智能开关原理图和PCB,采用涂鸦WIFI模块。给公司设置的,批量生产过。支持一路,二路,和三路开关。

上一篇: 小鼠脑立体定位图谱_多篇顶刊解读:全新的脑功能成像技术在脑科学研究中大放异彩!...
下一篇: docker查找镜像_Docker容器技术(指令篇)
weixin_39862716
博客等级 码龄9年 30粉丝 149原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值