![]() |
1
84
如果需要与Python的古代版本兼容,可以使用 gmpy (它包含了一个快速的、完全通用的int到string转换函数,并且可以为这样的古老版本而构建——您可能需要尝试较旧的版本,因为最近的版本还没有经过古老的python和gmp版本的测试,只是有点新的版本),或者为了速度更低但更方便,使用python代码——例如,最简单的Y:
|
![]() |
2
85
裁判: http://code.activestate.com/recipes/65212/ 请注意,这可能导致
对于非常大的整数。 |
![]() |
3
80
令人惊讶的是,人们只给出了转换成小碱基(比英语字母表的长度小)的解决方案。没有试图给出一个从2到无穷大的任意基的解。 所以这里有一个非常简单的解决方案:
所以如果你需要把一些超大的数字转换成基数
以后可以转换成任何基础 |
![]() |
4
67
|
![]() |
5
20
答案很好! 我想我的问题的答案是“不”,我没有遗漏一些明显的解决办法。 下面是我将使用的功能,它浓缩了答案中表达的好想法。
< PRE> >代码> def int2base(x,b,alphabet='0123456789abcdefghijklmnopqrstuvwxyz'): '将整数转换为给定基中的字符串表示形式' 如果b<2或b>len(字母表): 如果b==64:假设base64而不是引发错误 alphabet=“abcdefghijklmnopqrstuvwxyzabcefghijklmnopqrstuvwxyz0123456789+/” 其他: 引发断言错误(“Int2Base超出范围”) 如果isInstance(x,complex):返回元组 返回(int2base(x.real,b,alphabet),int2base(x.imag,b,alphabet)) 如果x<=0: 如果x=0: 返回字母[0] 其他: 返回'-'+Int2Base(-x,b,字母表) #否则x是非负实数 里茨= 而x & gt;0: x,idx=divmod(x,b) rets=字母[idx]+rets 退货税
.
|
![]() |
6
14
python没有用于在任意基中打印整数的内置函数。如果你想的话,你必须自己写。 |
![]() |
7
13
你可以使用
样品使用情况:
例如,有一些Bultin转换器
|
![]() |
8
4
http://code.activestate.com/recipes/65212/
这是同一个链接的另一个链接
|
![]() |
9
3
我做了一个PIP包。 我建议你用我的基地。 https://github.com/kamijoutouma/bases.py 灵感来源于bases.js
参照 https://github.com/kamijoutouma/bases.py#known-basesalphabets 什么样的基础是有用的 |
![]() |
10
3
递归的我愿意 简化 这个 most voted answer 收件人:
同样的建议
迭代的至 避免递归问题 :
|
![]() |
11
3
输出:
|
![]() |
12
1
|
![]() |
13
1
对感兴趣的人的递归解决方案。当然,这对负二进制值不起作用。您需要实现二的补码。
|
![]() |
14
1
解释
在任何基数中,每个数字都等于
对于每一个
基%(base-1)==1,因此,基**p%(base-1)==1,因此q*基^ p%(base-1)==q,当q=base-1返回0时,只有一个例外。 为了解决这个问题,如果返回0,func将检查begining中的0。 优势在这个样本中,只有一个乘法(而不是除法)和一些相对花费少量时间的模。 |
![]() |
15
0
|
![]() |
16
0
另一个简短的(并且更容易理解IMO):
以及适当的例外处理:
|
![]() |
17
0
另一种解决方案是使用碱2到碱10,需要对更高的碱进行修改:
例子:
|
![]() |
18
0
这里是一个递归版本,处理有符号整数和自定义数字。
|
![]() |
19
0
|
![]() |
20
0
|
![]() |
21
-1
字符串不是表示数字的唯一选择:您可以使用整数列表来表示每个数字的顺序。这些可以很容易地转换为字符串。 所有答案都不会拒绝基本答案<2;,大多数答案的运行速度会非常慢,或者由于堆栈溢出而崩溃。 非常大 数字(如56789**43210)。要避免此类故障,请像这样快速减少:
Speedwise
考虑十进制字符串的最后一位。它如何与构成整数的字节序列相关?让我们标记字节
|
![]() |
22
-1
我在这里没有看到任何浮筒转换器。我总是错过了三位数的分组。 TODO:
-科学表达中的数字
-来自字符串函数。 -以1-gt;罗马数字为基数? -含Agles复合物的repr 所以我的解决方案是:
|
![]() |
23
-2
输出:
要转换成任何基,反转也很容易。 |