当前位置: 首页 > news >正文

Python 任意进制到任意进制转换 的实现代码

需求

将一个数字 从任意进制 转换为 任意进制 的数值。

实现

Python2


def baseconvert(number, fromdigits, todigits):
    if str(number)[0] == '-':
        number = str(number)[1:]
        neg = 1
    else:
        neg = 0
    # make an integer out of the number
    x = long(0)

    for digit in str(number):
        x = x*len(fromdigits) + fromdigits.index(digit)

    # create the result in base 'len(todigits)'
    res = ""
    while x > 0:
        digit = x % len(todigits)
        res = todigits[digit] + res
        x /= len(todigits)
    if neg:
        res = "-"+res
    return res

//将8从10进制转为二进制
print(baseconvert(8, "0123456789","01"))
//将100从10进制转为八进制
print(baseconvert(100, "0123456789","01234567"))

Python3

需要修改x = long(0)x=0
原因:Python3.x中没有long类型,只有int类型。

同时修改x /= len(todigits)x //= len(todigits)
原因:python3使用//作为整除符号

相关文章:

  • 反射型XSS <?php echo $_GET[‘x‘];?> 笔记
  • JavaScript/JS 实现文字逐个显示 延迟缓慢展示
  • idea copy reference没有了
  • Html文件 浏览器上打开 中文乱码的 解决方法
  • Python Undefined variable ‘sqrt‘ 的解决方式
  • WeChall Simply Red (Stegano, Image) 答案
  • Flow Over Astronomy (Coding, Math) 答案
  • Impossible n‘est pas français (Exploit) 答案
  • WeChall htmlspecialchars (Exploit, PHP, XSS)
  • 注意最后一行程序中既有单引号又有双引号.....
  • Python2/3 字符串转16进制 16进制转字符串
  • XSS攻击 eval(location.hash.substr(1)); 笔记
  • Unable to find the wrapper “https“ 解决方法
  • WeChall Towers of Hanoi (Java, Crac... 答案
  • XSS攻击 header(‘Location: ‘.$_GET[‘x‘]); 笔记
  • 0x05 Python数据分析,Anaconda八斩刀
  • 5、React组件事件详解
  • C++入门教程(10):for 语句
  • EventListener原理
  • javascript面向对象之创建对象
  • JavaScript学习总结——原型
  • Protobuf3语言指南
  • Python3爬取英雄联盟英雄皮肤大图
  • vue.js框架原理浅析
  • 从零搭建Koa2 Server
  • 服务器从安装到部署全过程(二)
  • 理解在java “”i=i++;”所发生的事情
  • 前端面试之CSS3新特性
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小而合理的前端理论:rscss和rsjs
  • 用简单代码看卷积组块发展
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​渐进式Web应用PWA的未来
  • ​人工智能书单(数学基础篇)
  • "无招胜有招"nbsp;史上最全的互…
  • # 计算机视觉入门
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (二)PySpark3:SparkSQL编程
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)Mysql的优化设置
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • . NET自动找可写目录
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET大文件上传知识整理
  • .NET委托:一个关于C#的睡前故事
  • .net中我喜欢的两种验证码
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • :not(:first-child)和:not(:last-child)的用法
  • @Transactional 详解
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [100天算法】-实现 strStr()(day 52)