Поскольку строки Elixir являются просто двоичными файлами, вы, вероятно, можете использовать функцию erlang :binary.decode_unsigned
для преобразования двоичных цифр в целые числа
Из документации http://erlang.org/doc/man/binary.html#decode_unsigned-1
iex> :binary.decode_unsigned("hello")
448378203247
iex> :binary.encode_unsigned(448378203247)
"hello"
По сути,Значение ascii hello
равно
<<104, 101, 108, 108, 111>>
при преобразовании из десятичного числа в шестнадцатеричное и может быть записано как
<<68, 65, 6C, 6C, 6F>>
или в двоичном виде как
<01101000, 01100101, 01101100, 01101100, 01101111>
, чтосерия байтов, хранящаяся как
68656C6C6F
в шестнадцатеричном виде или
01101000_01100101_01101100_01101100_01101111
в двоичном
, чье десятичное значение (base-10) будет 448378203247
iex> Integer.to_string(448378203247, 16)
"68656C6C6F"
iex> Integer.to_string(448378203247, 2)
"110100001100101011011000110110001101111"
# each byte separated by _ is
# "1101000_01100101_01101100_01101100_01101111"
# missing a leading zero at the left, which doesn't change the value
edit: добавлен двоичный пример,
также, две шестнадцатеричные цифры могут использоваться для точного обозначения байта (4 бита, необходимых для кодирования 16 значений, от 0 до 15), поэтому, когда мыОбозначим в шестнадцатеричном виде, мы можем просто объединить шестнадцатеричные значения, а не тогда, когда они находятся в десятичной (base-10) нотации
С Вики для шестнадцатеричного
Шестнадцатеричные цифры широко используются разработчиками компьютерных систем и программистами, так как они обеспечивают более дружественное отношение к человеку.представление двоичных значений.Каждая шестнадцатеричная цифра представляет четыре двоичные цифры, также называемые полубайтами, которые составляют половину байта.Например, один байт может иметь значения в диапазоне от 0000 0000 до 1111 1111 в двоичной форме, что может быть более удобно представлено от 00 до FF в шестнадцатеричном формате.