2.6. Konwersje między różnymi podstawami liczenia
Problem
Chcemy wyrażać wartości liczbowe w różnych układach liczenia.
Rozwiązanie
Stałe binarne, ósemkowe i szesnastkowe zapisuje się, rozpoczynając od prefiksu (odpowiednio) 0b
, 0o
i 0x
:
0b100 # => 4 0o100 # => 64 0x100 # => 256
Możliwa jest także konwersja wartości liczbowej do równoważnego jej łańcucha, wyrażonego w systemie liczenia o dowolnej podstawie z zakresu od 2 do 36 — należy podstawę tę podać jako argument wywołania metody Integer#to_s
.
42.to_s(10) # => "42" -100.to_s(2) # => "-1100100" 255.to_s(16) # => "ff" 1442151747.to_s(36) # => "number"
Konwersję odwrotną wykonuje się za pomocą metody String#to_i
wywoływanej z podstawą liczenia jako argumentem:
"1045".to_i(10) # => ...
Get Ruby. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.