# 进制转换 大整数 python 示例代码
def int_to_base(n, base):
"""
将一个整数 n 转换为指定进制 base 的字符串表示。
参数:
n -- 需要转换的整数
base -- 目标进制 (2 到 36)
返回:
转换后的字符串表示
"""
if not (2 <= base <= 36):
raise ValueError("Base must be between 2 and 36")
# Python 内置函数可以处理大整数
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if n < 0:
sign = "-"
n = -n
else:
sign = ""
result = ""
while n:
result = digits[n % base] + result
n = n // base
return sign + result if result else "0"
def base_to_int(s, base):
"""
将指定进制 base 的字符串 s 转换为整数。
参数:
s -- 需要转换的字符串
base -- 源进制 (2 到 36)
返回:
转换后的整数
"""
if not (2 <= base <= 36):
raise ValueError("Base must be between 2 and 36")
s = s.upper()
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
sign = 1
if s[0] == '-':
sign = -1
s = s[1:]
result = 0
for char in s:
if char not in digits[:base]:
raise ValueError(f"Invalid character {char} for base {base}")
result = result * base + digits.index(char)
return result * sign
# 示例用法
if __name__ == "__main__":
# 将十进制整数转换为十六进制
print(int_to_base(255, 16)) # 输出: FF
# 将十六进制字符串转换为十进制整数
print(base_to_int("FF", 16)) # 输出: 255
# 处理大整数
big_number = 123456789012345678901234567890
print(int_to_base(big_number, 16)) # 输出: 11F1C5D3B3E5CA71A1F2
print(base_to_int("11F1C5D3B3E5CA71A1F2", 16)) # 输出: 123456789012345678901234567890
int_to_base 函数:将一个整数 n 转换为指定进制 base 的字符串表示。支持从二进制到三十六进制的转换。使用了 Python 的内置大整数支持,因此可以处理非常大的整数。
base_to_int 函数:将指定进制 base 的字符串 s 转换为整数。同样支持从二进制到三十六进制的转换,并且可以处理带符号的数字。
示例用法:展示了如何使用这两个函数进行进制转换,包括处理大整数的情况。
上一篇:python绝对路径
下一篇:python canvas
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站