首页 > 后端开发 > Python教程 > 如何在 Python 中将整数转换为任意基数的字符串?

如何在 Python 中将整数转换为任意基数的字符串?

Barbara Streisand
发布: 2024-12-06 10:28:11
原创
442 人浏览过

How to Convert Integers to Strings in Any Base in Python?

将整数转换为任何基数的字符串

Python 提供了方便的功能,可以通过 int() 函数使用指定基数将字符串转换为整数,但是将整数转换回不同基数的字符串会带来挑战。本文旨在解决此任务并提供克服内置函数中的限制的通用解决方案。

函数 int2base()

为了解决这个问题,提出了一个函数 int2base(num, base),满足以下要求:

  • 将整数 x 转换为 a以 b 为基数的字符串 str: int(str, b) == x
  • 支持 int() 函数接受的任何有效 x 和 b

一个令人惊讶的简单解决方案

与预期相反,一个简单的解决方案存在:

def numberToBase(n, b):
    if n == 0:
        return [0]
    digits = []
    while n:
        digits.append(int(n % b))
        n //= b
    return digits[::-1]
登录后复制

此解决方案适用于从 2 到无穷大的任何基数。如果您需要将大整数转换为基数 577,例如:

numberToBase(67854 ** 15 - 102, 577)
登录后复制

它正确返回:

[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
登录后复制

然后可以根据需要将此结果轻松转换为任何其他基数.

理解解决方案

关键解决方案在于理解不同基数的数字表示。例如,在基数 10 中,数字 123 表示 (1 10^2) (2 10^1) (3 * 10^0)。类似地,在任意基数 b 中,数字可以表示为 b 的幂之和。

numberToBase() 函数的工作原理是迭代地将输入 n 除以 b 并收集余数。这些余数以相反的顺序表示以 b 为基数的数字。

以上是如何在 Python 中将整数转换为任意基数的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板