Gibt es in Ruby eine Radix-Funktion?

8

Beim Lesen einer anderen Frage wurde beim Erstellen eines URL-Verkürzungsdienstes vorgeschlagen, die ID der Zeile zu übernehmen und sie dann in die Basis 62 umzuwandeln (0 bis 9, a bis z und A bis Z). Gibt es eine Standardfunktion, um dies in Ruby zu erreichen?

Bearbeiten: Ich bin mir nicht sicher, ob ich klar genug war.

In etwa so: 123456.radix (62)

sollte die Basis 62 von 123456 ergeben.

Ich denke daran, eines zu schreiben, wenn es nicht schon da ist.

    
user61734 18.05.2009, 20:16
quelle

3 Antworten

9

Die Methode to_s in Ruby-Ganzzahlklassen verfügt über einen optionalen Parameter, der die Basis angibt. etwas wie:

%Vor%

Es akzeptiert jedoch nur Werte von 2 bis 36 als Radix.

Dieses Snippet ist möglicherweise ein guter Ausgangspunkt, wenn Sie Ihren eigenen Encoder schreiben möchten. Es gibt auch ein base62-Ruby-Juwel , das Methoden zum Kodieren und Dekodieren in base62 hinzufügt.

    
Firas Assaad 18.05.2009, 20:24
quelle
5

Da ich in letzter Zeit Radixes in Ruby verwenden musste, und da dies das erste Ergebnis für 'Ruby radix' ist, dachte ich, dass es jetzt ein Juwel für die Arbeit mit Radixen. Hier ist, wie man das Beispiel des OPs mit diesem Code codiert: 1

%Vor%

1 Das Array SIXTYTWO wird benötigt, da der Edelstein keine Annahmen darüber macht, welche Zeichen zum Codieren des Ergebnisses verwendet werden sollen.

    
Abe Voelker 05.06.2011 18:57
quelle
0

Konnte keine Links für Base62-Encoding-Juwel öffnen und mag auch nicht die Funktionalität von Radix-Juwel. SO fand diese eine schnelle und einfache Lösung für Base62-Kodierungen:

Ссылка

    
quelle

Tags und Links