Pour le puzzle 5 de Google Chromebook, j'ai eu besoin de changer de base pour faire des tests. (je n'ai pas trouvé l'énigme)
La fonction to_s de ruby permet donc de convertir l'integer Y en chaine Z de base X spécifiée
Y.to_s(X)
=> Z
A l'inverse, la fonction to_i de ruby permet donc de convertir la chaine Z (qui symbolise un entier en base X) en integer de base 10 :
Z.to_i(X)
=> Y
Voici quelques exemples tirés de la console
En binaire base 2
irb(main):001:0> 50.to_s(2) => "110010" irb(main):002:0> 3.to_s(2) => "11" irb(main):003:0> 35.to_s(2) => "100011" irb(main):004:0> 35.to_s(2).to_i(2) => 35 irb(main):005:0> "100011".to_i(2) => 35 irb(main):006:0> "100A011".to_i(2) => 4 irb(main):007:0> "100".to_i(2) => 4
Exemple en hexa base 16
ruby-1.9.2-p0 > "1A".to_i(16) => 26 ruby-1.9.2-p0 > "A".to_i(16) => 10 ruby-1.9.2-p0 > "B".to_i(16) => 11
Et comme vous avez pu le voir, ça fonctionne avec Ruby 1.8 et Ruby 1.9.