我正在尝试做一些将任何基数转换为任何其他基数而不使用十进制转换的事情。
例如程序将询问用户:
"Please put number which you would like to convert: 101"
"Please write from which base you want to convert: 2 " #base(2)
"Please write to which base you want to convert: 6" #base(6)
and will return value which converted from base(2) to base(6)
"Here is the result: 5"
您不会将整数从一种基数转换为另一种基数。整数不变。您将整数呈现为表示形式。
从技术上讲,普通(常规)数字不是“十进制”数字。它是数字的十进制表示形式。对于二进制、八进制、十六进制等也是如此。
要将整数的字符串表示形式转换为 2 到 36 之间的任何基数,您只需使用 int() 内置函数及其额外(可选)参数即可。 Python 假设字母“a”到“z”有一个相当直观的序列来表示大于 9 的“数字”。
例如:int('101101',2) -> 45
and int('101101',3) -> 280
等等。
为了将整数渲染为二进制、八进制或十六进制,可以简单地使用 Python 的内置字符串格式(尽管在 CPython 2.2 版本之后的某个时候添加了二进制和八进制……我不记得细节了)。
也许并非巧合的是,Python 标准库对 string.literal 的定义以精确的正确顺序返回,可用于 36 以内的任何基数……并且可以想象,可以使用它来将整数渲染为基数直到99 ...尽管数字表示的概念(其中“a”和“A”是不同的数字以及空格、换行符等)有点令人费解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)