Python 模运算符给出不好的结果
Python modulo operator giving bad results
>>> m = 3403
>>> 31 % m
31
>>> 031 % m
25
我在终端中使用 python 测试 RSA。我不知道为什么最后一行给出了它的结果。有什么想法吗?
这不是 %
运算符的问题。您不小心使用了 Python 整数文字功能。
您创建了一个 八进制 号码,方法是在号码前加上 0
:
>>> 31
31
>>> 031
25
那是 3 * 8 + 1
,不是 3 * 10 + 1
。
在 Python 3 中,您不能再以这种方式创建八进制数字,您只能使用 0o
前缀。
>>> m = 3403
>>> 31 % m
31
>>> 031 % m
25
我在终端中使用 python 测试 RSA。我不知道为什么最后一行给出了它的结果。有什么想法吗?
这不是 %
运算符的问题。您不小心使用了 Python 整数文字功能。
您创建了一个 八进制 号码,方法是在号码前加上 0
:
>>> 31
31
>>> 031
25
那是 3 * 8 + 1
,不是 3 * 10 + 1
。
在 Python 3 中,您不能再以这种方式创建八进制数字,您只能使用 0o
前缀。