在日常生活中我们频繁使用到数学的进制,如季度逢三进一,星期逢七进一;生肖、小时使用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

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

python编写程序转换进制_Python实现任意进制之间的转换相关推荐

  1. verilog设置24进制计数器_任意进制计数器 || 反馈复位法 反馈置数法 || 超级重点 || 数电...

    任意进制计数器 || 反馈复位法 反馈置数法 || 超级重点 || 数电 前面介绍了4位二进制计数器和十进制计数器,但它们的计数长度.计数方式是固定的. 例如: 十进制计数器74160,其计数的模为1 ...

  2. C# 16进制与字符串、字节数组之间的转换

    在串口通讯过程中,经常要用到 16进制与字符串.字节数组之间的转换 字符串转16进制字节数组  1         private static byte[] strToToHexByte(strin ...

  3. 【python实现进制转换器】10进制整数向任意进制转换

    def radix_any():decimal_number = int(input("请输入10进制数"))asciil = int(input("请输入想转换成的进制 ...

  4. python编写猜大小游戏_python编写猜数字小游戏

    本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 import random secret = random.randint(1,30) guess = 0 tri ...

  5. 16进制 转为图片 php_Python 十六进制hex-bytes-str之间的转换和Bcc码的生成

    前言 近期做测试模拟器用到了hex-bytes-str之间的转换bcc码的校验,这里总结了一些方法. 实例 直接上代码 转为十六进制(Hex)字符串 def 执行代码: 方法:getStringFro ...

  6. 计算机网络ip进制转换方法,IP地址与二进制之间的转换

    IP地址与二进制之间的转换 在讨论如何进行IP地址与二进制之间的转换前, 有必要解释一下IP地址与二进制的概念 IP IP协议是网络层的一个协议, 是能使连接到网上的所有计算机网络实现相互通信的一套规 ...

  7. 两个向量之间的夹角公式_Python 计算任意两向量之间的夹角方法

    如图所示,我们要计算任意两个向量之间的夹角. (图中的坐标数字是估计值,随手给定) python代码如下 import math AB = [1,-3,5,-1] CD = [4,1,4.5,4.5] ...

  8. python编写程序转换进制_python——进制转换

    今天做一道题需要写一个二进制转换成十六进制的脚本,由于初学python不甚了解,于是百度尝试着写,现总结如下: 首先python中没有二进制直接转换成十六进制的函数,需要先将二进制转换成十进制然后再转 ...

  9. python如何输出16进制_python 以16进制打印输出的方法

    python 以16进制打印输出的方法 打印整数16进制 num=10 print('%#x'%num) 打印字符串中的16进制 arr='12342535' for i in arr: print( ...

最新文章

  1. jquery设置div高度和easyui的dialog动态的指定高度
  2. 病毒汇编逆向分析实例赏析
  3. 虚拟机centos 上安装svn
  4. iOS 调用地图导航
  5. EXCEL中显示年月日时分秒
  6. OpenGL球体的Phong渲染
  7. Win32中如何判断多个键同时按下
  8. mysql忘记密码怎么办?
  9. [译] 正确实现 linkedPurchaseToken 以避免重复订阅
  10. python数据库管理软件_MySQL管理工具MySQL Utilities — 介绍与安装(1)
  11. 【分享】老鸟程序员才知道的技巧
  12. centof7无法上网问题
  13. [小工具]取色器gcolor2
  14. SPSS分析基础——方差分析
  15. (鬼刀)记一次异步加载Python爬虫分析
  16. 无线通信设备安装工程概预算编制_深圳宝安不锈钢厨房设备安装工程
  17. 腾讯云GPU云服务器配置初体验
  18. win8计算机休眠的区别,win8系统的休眠和睡眠有什么区别?如何用?
  19. 基于物联网技术的校园智慧消防管理平台-Susie 周
  20. java这一年第几天_java 输入年月日,计算该日是这一年的第几天

热门文章

  1. Dropbox刷空间实战
  2. 回归童年--Ubuntu下加载NES小霸王游戏
  3. cocos2d-iphone之魔塔20层第四部分
  4. 2018年,哪些行业在悄然进行数字化转型?
  5. panic: runtime error问题分享
  6. 红米 android8 刷机,又一部红米“吃奥利奥”:全网通版Note 3安卓8.0刷机包放出...
  7. 豆豆趣事[2012年06月]
  8. 鸿蒙os版王者荣耀,王者荣耀鸿蒙版
  9. Razer Phone TWRP 适配编译心得
  10. 2023上半年软考记录