由于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"
基本上,
hello
的 ASCII 值是:
<<104, 101, 108, 108, 111>>
当从十进制转换为十六进制时,可写为
<<68, 65, 6C, 6C, 6F>>
或者以二进制表示为
<01101000, 01100101, 01101100, 01101100, 01101111>
这是一系列以十六进制形式表示的字节,例如68656C6C6F
,
或以二进制形式表示,例如01101000_01100101_01101100_01101100_01101111
,
它们的十进制(基于十)值为 448378203247
.
iex> Integer.to_string(448378203247, 16)
"68656C6C6F"
iex> Integer.to_string(448378203247, 2)
"110100001100101011011000110110001101111"
编辑:添加二进制示例
此外,两个十六进制数字可以完美地表示一个字节(需要4位编码16个值,从0到15),这就是为什么当我们使用十六进制表示时,我们可以将十六进制值连接起来,而不是在十进制(基数10)表示法中。
来自十六进制维基百科
十六进制数广泛用于计算机系统设计师和程序员,因为它们提供了更人性化的二进制编码值表示。每个十六进制数字代表四个二进制数字,也称为半个字节。例如,单个字节可以在二进制形式下具有从0000 0000到1111 1111的值,这可以更方便地表示为00到FF的十六进制数字。