ValueError异常Python中使用长()时

问题描述:

所以,当我运行:ValueError异常Python中使用长()时

value = long("00000000000000020000000000000002", 16) 

我得到:

ValueError: Value out of range: 36893488147419103234 

我想这是因为长期不能采取这么大的十六进制数,但我我不确定。

实际上,我通过一个包含大量十六进制数字的文件迭代,但这只是我试图解析的十六进制数字之一的示例。

我试过使用lstrip()删除一些0的,但它没有差错的错误。

我在做什么错?

+9

无法在2.7.13上复制更长的数字。 –

+5

FYI,在Python 3中'value = int(“00000000000000020000000000000002”,16)'正常运行('int'代替Python 2的'long')。 –

+0

我也无法在python2.7.12上复制。你使用什么版本?你确定'ValueError'在处理的某个步骤中没有被发射吗? – mgilson

该错误是由我试图分配值的变量而不是实际的long()函数引起的。

+3

不正确。对名称进行简单赋值不会引发值错误。 –

+0

我在提出问题之前简化了代码。实际上,我试图把这个数字分配给一个protobuff字段(不知道它是否是正确的名字),而这个数字并没有取得这样的数字。只要我将它分配给一个python var,就没有错误发生。最后我意识到我甚至不需要在那里存储数字,所以我最终并不在意...... 对不起所有的困惑 – Rikg09