Python 函数:十进制整数转换为任意进制数 (无递归)
以下是使用 Python 语言编写的将十进制整数 n 转换为进制数的函数,不使用递归:
def decimal_to_base(n, base):
'将十进制整数 n 转换为任意进制数'
if not isinstance(n, int) or not isinstance(base, int):
return None
if base < 2 or base > 36:
return None
digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
result = ''
while n > 0:
digit = n % base
result = digits[digit] + result
n //= base
return result if result else '0'
该函数接受两个参数:要转换的十进制整数 n 和要转换的进制数 base。如果 n 或 base 不是整数,函数将返回 None。如果 base 不在 2 到 36 的范围内,函数也将返回 None。
函数使用 digits 字符串来表示数字字符。例如,digits[0] 表示数字 0,digits[10] 表示字母 A,依此类推。
函数使用一个 while 循环,将 n 转换为 base 进制数。在每一次循环中,取 n 除以 base 的余数,并将其对应的数字字符添加到结果字符串的开头。然后将 n 除以 base 向下取整,以便在下一次循环中处理更高位的数字。
最后,如果结果字符串为空,则返回字符串 '0'。否则,返回转换后的进制数。
原文地址: https://www.cveoy.top/t/topic/ohOk 著作权归作者所有。请勿转载和采集!