在 Elixir 中将二进制字符串转换为十六进制,反之亦然
Convert a binary string to Hexadecimal and vice-versa in Elixir
如何在 Elixir 中将二进制字符串转换为十六进制字符串,反之亦然?
SO 上有一些关于此主题的其他 "main stream" 语言的帖子。甚至还有 SO post that benchmarks various C# implementations
我们如何在长生不老药中做到这一点?
我的实现太丑了,无法分享...:(
iex(1)> Base.encode16("foo")
"666F6F"
您还可以指定大小写:
iex(2)> Base.encode16("foo", case: :lower)
"666f6f"
我来这里是想在十六进制字符串和二进制数据(不是字符串)之间进行转换。接受的答案是正确的,因为 Elixir 中的字符串是二进制文件,但我发现答案使用 "foo"
作为示例令人困惑。 Base.encode16/2
/ Base.decode16!/2
适用于所有二进制文件,字符串是其中的一个子集。
十六进制转二进制:
Base.decode16!("0001FEFF")
=> <<0, 1, 254, 255>>
二进制转十六进制:
Base.encode16(<<0, 1, 255, 255>>)
=> "0001FFFF"
Base.encode16(<<0x66, 0x6F, 0x6F>>) # equivalent to "foo"
=> "666F6F"
Base.encode16("foo")
=> "666F6F"
如何在 Elixir 中将二进制字符串转换为十六进制字符串,反之亦然?
SO 上有一些关于此主题的其他 "main stream" 语言的帖子。甚至还有 SO post that benchmarks various C# implementations
我们如何在长生不老药中做到这一点?
我的实现太丑了,无法分享...:(
iex(1)> Base.encode16("foo")
"666F6F"
您还可以指定大小写:
iex(2)> Base.encode16("foo", case: :lower)
"666f6f"
我来这里是想在十六进制字符串和二进制数据(不是字符串)之间进行转换。接受的答案是正确的,因为 Elixir 中的字符串是二进制文件,但我发现答案使用 "foo"
作为示例令人困惑。 Base.encode16/2
/ Base.decode16!/2
适用于所有二进制文件,字符串是其中的一个子集。
十六进制转二进制:
Base.decode16!("0001FEFF")
=> <<0, 1, 254, 255>>
二进制转十六进制:
Base.encode16(<<0, 1, 255, 255>>)
=> "0001FFFF"
Base.encode16(<<0x66, 0x6F, 0x6F>>) # equivalent to "foo"
=> "666F6F"
Base.encode16("foo")
=> "666F6F"