Positive ganze Zahl aus Python-hash () - Funktion

Möchte ich mit der Python - hash() - Funktion, um integer-hashes von Objekten. Aber built-in hash() geben kann negative Werte, und ich will nur positiv. Und ich will, dass es funktioniert vernünftig auf 32-bit-und 64-bit-Plattformen.

I. e. auf 32-bit-Python hash() zurückkehren können, eine ganze Zahl im Bereich -2**31 zu 2**31 - 1.
Auf 64-bit-Systemen hash() zurückkehren können, eine ganze Zahl im Bereich -2**63 zu 2**63 - 1.

Aber ich will ein hash im Bereich 0 zu 2**32-1 auf 32-bit-Systeme, und 0 zu 2**64-1 auf 64-bit-Systeme.

Was ist der beste Weg, um zu konvertieren der hash-Wert den entsprechenden positiven Wert innerhalb des Bereichs von 32 - oder 64-bit-Zielplattform?

(Kontext: ich versuche einen neuen zu machen random.Random Stil Klasse. Nach der random.Random.seed() docs, die Samen "optional argument x kann eine beliebige hashable-Objekt." Ich möchte also doppelte Funktionalität, außer, dass mein Samen Algorithmus nicht umgehen kann negative integer-Werte nur positiv sein.)

InformationsquelleAutor Craig McQueen | 2013-09-12

Schreibe einen Kommentar