Книга: Программирование на языке Ruby

5.18. Преобразование системы счисления

5.18. Преобразование системы счисления

Ясно, что любое целое число можно представить в любой системе счисления, поскольку хранятся эти числа в двоичном виде. Мы знаем, что Ruby умеет работать c целыми константами, записанными в любой из четырех наиболее популярных систем. Следовательно, разговор о преобразовании системы счисления может вестись только применительно к числам, записанным в виде строк.

Вопрос о преобразовании строки в целое рассмотрен в разделе 2.24. Для преобразования числа в строку проще всего воспользоваться методом to_s, которому можно еще передать основание системы счисления. По умолчанию оно равно 10, но в принципе может быть любым вплоть до 36 (когда задействованы все буквы латинского алфавита).

237.to_s(2)  # "11101101"
237.to_s(5)  # "1422"
237.to_s(8)  # "355"
237.to_s     # "237"
237.to_s(16) # "ed"
237.to_s(30) # "7r"

Другой способ — обратиться к методу % класса String:

hex = "%x" % 1234 # "4d2"
oct = "%о" % 1234 # "2322"
bin = "%b" % 1234 # "10011010010"

Метод sprintf тоже годится:

str = sprintf(str,"Nietzsche is %xn",57005)
# str теперь равно: "Nietzsche is deadn"

Если нужно сразу же вывести преобразованное в строку значение, то подойдет и метод printf.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.280. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз