string - 在 Elixir 中将二进制字符串转换为十六进制,反之亦然

标签 string binary elixir hexdump

你如何在 Elixir 中将二进制字符串转换为十六进制字符串,反之亦然?

关于其他“主流”语言的此主题,SO 上有一些帖子。甚至还有一个 SO post that benchmarks various C# implementations

我们如何在 elixir 中做到这一点?

我的实现太丑了,无法分享... :(

最佳答案

我来这里是想在十六进制字符串和 之间进行转换二进制数据 (不是字符串)。接受的答案是正确的,因为 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"

关于string - 在 Elixir 中将二进制字符串转换为十六进制,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33347909/

相关文章:

javascript - 在 jquery 中显示整个二进制文件

c++ - 关闭程序后如何从二进制文件中读取字符串

authentication - Poison 无法编码 JSON (Phoenix)

elixir - 多个子句中的函数头需要什么?

arrays - 如何从数据库获取多条记录并将其放入数组或映射中

Java 使用字符串作为对象调用

javascript - 将字符串转换为具有多个条目的单个数组

python - 如何将字典变成字符串?

java - 匹配字符串中的模式

java - 如何在 Java 中将 byte[] 转换为 POSITIVE BigInteger?