elixir之从二进制文件中获取位

阿里 阅读:8 2024-08-05 10:48:10 评论:0

我正在将比特流写入 base64 编码器,但似乎无法找到访问原始比特的方法。

假设我有位串:

0100 1101 0110 0001 0110 1110 

在灵药中表示为:

<<77, 97, 110>> # or the string "Man" 

我需要访问 6 位 block 中的位串,以便将其编码为 base64。怎么可能做到这一点?我没有很多使用原始二进制文件的经验,所以我可能会天真地处理这个问题。

请您参考如下方法:

您可以从二进制文件中任意获取单个位组:

iex(1)> <<a :: 6, b :: 6, c:: 6, d::6>> = <<77, 97, 110>> 
 
iex(2)> [a,b,c,d] 
[19, 22, 5, 46] 

或者您可以使用 for comprehension :

iex(3)> for <<x :: 6 <- <<77, 97, 110>> >>, do: x 
[19, 22, 5, 46] 


标签:程序员
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号