Преобразование шестнадцатеричного числа в двоичное в рубине

Это может казаться странным, но я начал писать код путем автоматизации задач и анализа данных в моем прежнем задании. Это было выполнено путем записи тогда изучения кода сгенерированный макрос Excel. Конечно, этот подход предполагает, что можно учиться через VB.

11
задан sawa 27 May 2013 в 21:23
поделиться

1 ответ

Это не отвечает на Ваш исходный вопрос, но я предположил бы, что много людей, приезжающих вот, вместо того, чтобы смотреть на поворот, шестнадцатеричный к фактическому "0s и 1 с" двоичный выход, к декодируют шестнадцатеричный к представление строки байтов (в духе таких утилит как hex2bin). По сути, вот хороший метод для того, чтобы сделать точно что:

def hex_to_bin(hex)
  # Prepend a '0' for padding if you don't have an even number of chars
  hex = '0' << hex unless (hex.length % 2) == 0
  hex.scan(/[A-Fa-f0-9]{2}/).inject('') { |encoded, byte| encoded << [byte].pack('H2') }
end

Возвращение для преобразовывания в шестнадцатеричную систему снова намного легче:

def bin_to_hex(bin)
  bin.unpack('H*').first
end
0
ответ дан 3 December 2019 в 07:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: