将浮点数(实数)转换为任何其他基数

Converting a float (real number) to any other base

我正在尝试创建一个程序,例如采用以 10 为底数的浮点数 9.325,然后将其转换为任何指定的底数(二进制、十六进制、三进制、八进制等...)。目前,我有一种非常低效的方法来执行此操作,因为我不确定是否有一种通用算法可以将实数基数 10 转换为另一个基数,因为目前我使用的基数 2 转换算法与基数 8 不同。

代码(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 语句的需求。对我来说很难的是数字是浮点数,如果它是一个整数,这就没问题了。但是,我能找到将浮点数转换为任何其他基数的唯一方法是使用大量不同的算法,我们将不胜感激。提前致谢。

是的,有一种通用算法可以将一个基数中的任何数字转换为另一个基数中的数字。首先,您分别转换整数和小数部分。听起来您很熟悉通过重复除以基数将整数从一个基数转换为另一个基数的算法。您仍然需要使用十进制数的整数部分来执行此操作。对于数字的小数部分,算法是相似的,但你重复乘以基数而不是除以。