2017-08-29 1 views
2

Also, wenn ich laufen:Valueerror, wenn lange mit() in Python

value = long("00000000000000020000000000000002", 16) 

ich:

ValueError: Value out of range: 36893488147419103234 

Ich denke, es ist, weil lange nicht so eine große Hex-Zahl nehmen, aber ich 'ich bin mir nicht sicher.

In Wirklichkeit wiederhole ich eine Datei mit einer großen Anzahl sehr großer Hex-Zahlen, aber dies ist nur ein Beispiel für eine der Hex-Zahlen, die ich analysieren möchte.

Ich habe versucht, mit lstrip() einige der 0 zu entfernen, aber es machte keinen Unterschied für den Fehler.

Was mache ich falsch?

+9

Kann nicht auf 2.7.13 mit einer noch viel längeren Zahl duplizieren. –

+5

FYI, in Python 3 'value = int (" 00000000000000020000000000000002 ", 16)' läuft gut ('int' ersetzt Pythons 2' long'). –

+0

Ich kann auch nicht auf python2.7.12 duplizieren. Welche Version verwenden Sie speziell? Sind Sie sicher, dass der 'ValueError' bei der Verarbeitung nicht weiter ausgegeben wird? – mgilson

Antwort

-1

Der Fehler wurde durch die Variable verursacht, der ich den Wert zuweisen wollte, nicht die eigentliche long() - Funktion.

+3

Falsch. Die einfache Zuweisung zu einem Namen kann keinen Wertfehler auslösen. –

+0

Ich habe den Code vereinfacht, bevor ich die Frage gestellt habe. In Wirklichkeit habe ich versucht, die Nummer einem Protobuff-Feld zuzuordnen (nicht sicher, ob das der richtige Name dafür ist), der nicht dafür gemacht wurde, eine solche Nummer zu nehmen. Sobald ich auf eine Python-Variable umgestellt habe, ist kein Fehler aufgetreten. Am Ende merkte ich, dass ich nicht einmal die Nummer darin speichern musste, also war es am Ende egal ... Entschuldigung für die Verwirrung – Rikg09

Verwandte Themen