0
Ich stolperte über einen Fehler, den ich nicht ganz verstehe.String # pack arbeitet auf 1.9+, nicht 1.8 *
# Ruby 1.8.7
>> [Digest::MD5.hexdigest("http://www.google.com").to_i(16)].pack("N")
RangeError: bignum too big to convert into 'unsigned long'
# Ruby 1.9.3
>> [Digest::MD5.hexdigest("http://www.google.com").to_i(16)].pack("N")
=> "[email protected]"
Jeder kann erklären, warum, und wie kann ich dieses Problem lösen? Wenn keine tragbare Lösung verwendet werden kann, brauche ich eine für 1.8.7.
Was willst du mit diesem .pack ('N')? Kürzen Sie das Ergebnis? – karatedog
Ja, ich verwende ein Code-Snippet von https://github.com/technoweenie/guillotine/blob/master/lib/guillotine.rb – ksol
Dann gehen Sie mit Saids Vorschlag. ("N") nimmt nur die letzten 32 Bit, so dass modulo das Ergebnis nicht ändert. – karatedog