【发布时间】:2022-01-06 12:47:27
【问题描述】:
我正在尝试创建一个程序,它以浮点数 9.325 为基数 10,然后将其转换为任何指定的基数(二进制、十六进制、三进制、八进制等)。目前,我有一种非常低效的方法,因为我不确定一种通用算法可以将实数基数 10 转换为另一个基数,因为目前我正在使用与基数 8 不同的算法进行基数 2 转换。
代码(python 但语言不一定重要):
def main():
number = 9.325
base = float(input("Enter base: "))
if base == 2:
# implement base 10 -> base 2 conversion algorithm
else if base > 2:
# implement base 10 -> base greater than 2 conversion algorithm
main()
我想知道是否有一种确定的算法可以采用数字 9.325,然后将其转换为任何其他基数,无论是基数 2 还是基数 16,以消除对长链 if 语句的需要。让我感到困难的是这个数字是浮动的,如果它是一个整数,那没问题。但是,我能找到将浮点数转换为任何其他基数的唯一方法是使用大量不同的算法,任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
是的,有一种通用算法可以将一个基数中的任何数字转换为另一个基数中的数字。