Ответ 1
Использовать формат строки.
"%08b" % 1
# => "00000001"
Я знаю, что я могу использовать Fixnum#to_s
для представления целых чисел в виде строк в двоичном формате. Однако 1.to_s(2)
создает 1
, и я хочу, чтобы он создавал 00000001
. Как я могу заставить все возвращенные строки иметь нули в качестве заполнения до 8 символов? Я мог бы использовать что-то вроде:
binary = "#{'0' * (8 - (1.to_s(2)).size)}#{1.to_s(2)}" if (1.to_s(2)).size < 8
но это не кажется очень изящным.
Использовать формат строки.
"%08b" % 1
# => "00000001"
Использование String#rjust
:
1.to_s(2).rjust(8, '0')
=> "00000001"
Используйте String#%
метод для форматирования строки
"%08d" % 1.to_s(2)
# => "00000001"
Вот ссылка для разных параметров форматирования.