将以10为基数的数字转换为任何不带字符串的基数

2024-09-27 07:24:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在 我正在尝试做一个函数,它接受以10为基数的数字,并且可以从2到9转换为任何基数。我试图只使用math模块和一些简单的数学运算。 在

我的代码涉及字符串,我希望消除它们,而是让函数做一些数学运算,而不是使用字符串中的数字。同时,我也在尝试生成输出整数。在

def conver(n,b):
    digits = ('0123456789')
    ans = ""
    while n > 0:
        ans = digits[n%b] + ans
        n //= b
    return ans

在 例如,用户可以输入值(14,2)并得到输出1110 在


Tags: 模块函数字符串代码returndef数字数学
1条回答
网友
1楼 · 发布于 2024-09-27 07:24:15

一个可以“转换”到基9的简单实现如下:

def conver(n,b):
    a = 0
    i = 0
    while n:
        n,r = divmod(n,b)
        a += 10**i * r
        i += 1

    return a

注意n,r = divmod(n,b)可以是r = n % b; n //= b

请注意,您得到的数字是一个整数(作为一种类型),但是使用它本身是没有意义的,因为基数是错误的:Ex:1110不是真正的1110。所以它和字符串没什么区别。。。在

好吧,那只是为了练习。在

相关问题 更多 >

    热门问题