Python模运算符给出了不好的结果

时间:2015-11-15 00:56:43

标签: python modulo

>>> m = 3403
>>> 31 % m
31
>>> 031 % m
25

我在终端测试RSA时使用python。我不知道为什么最后一行给出了它的结果。有什么想法吗?

1 个答案:

答案 0 :(得分:8)

这不是header运算符的问题。您不小心使用了Python整数文字功能。

您通过在%前面添加数字来创建八进制号码:

0

那是>>> 31 31 >>> 031 25 ,而不是3 * 8 + 1

在Python 3中,您不再能以这种方式创建八进制数字,只能使用3 * 10 + 1前缀。