Python可以使用int()
函数将以10为基数的整数转换为以X为基数的X,其中2<;=X<;=36。似乎很自然(除非你研究过群论),有一种方法可以将任何整数的基数转换回以10为基数的数字,或者将基数X转换为以Y为基数的数字。在
我可以使用from math import log
编写一个函数来在基之间进行转换,但是我想知道python是否已经内置了什么来实现这一点。在
Python3中是否有一个内置函数,用于在任意两个基之间执行基的更改?有哪些约束(如果有)与int()
相似?在
编辑:为了澄清,int()
只解释以10为基数的第一个参数。我想将参数指定为不同的基表示形式。我想知道是否有一个内置函数需要两个参数作为基表示。
示例(为什么int()
不是答案:
>>> int('100',9) == int(str(int('81',9)),10)
False
编辑2:假设我想知道100在9的基数是多少,我会用下面的方法, 内景('100',9) 这将返回值81。 现在假设我要取81(在第9垒),然后把它变回10垒。Python中是否有一个函数可以实现这一点,或者有一种方法来标记第一个参数,以指示我给它一个以9为底的数字?在
我知道有一种方法可以为二进制指定这个值,使用'ob'
,十六进制值使用'0x'
。例如
这将返回值100,为第一个参数指定其他基的前缀是什么。在
当你谈到一个整数对象时,它与它的基N表示不同。在
在内部,整数存储在二进制中,而integer对象本身没有基。您可以从任何以N为底的任何数字串构造int对象,只要指定基,并且数字串对该基有效。由于字母表中有10个十进制数字和26个字母,因此通常限制为最多36个。在
对于基数2、8、10和16有特殊情况,因为它们是最常用的。对于这些基,可以在字符串表示本身中指定基。前缀}分别表示2、8和16。Decimal是默认值,也是最常用的,因此它不需要前缀。在
0b
、0
或{如果您想以字符串的形式返回整数的以N为底的表示形式,即反转运算int(N,N),您有几个选项。可以使用
gmpy.digits(n, N)
,其中n
是int,N
是所需的基。这可能有点过分了,因为它需要安装gmpy。在您也可以使用类似的方法:
使用该函数或类似函数,可以返回以N为底的整数的字符串基N表示形式,以便:
^{pr2}$相关问题 更多 >
编程相关推荐