gpt4 book ai didi

elixir - 如何将二进制文件分割成N位 block

转载 作者:行者123 更新时间:2023-12-02 02:21:49 27 4
gpt4 key购买 nike

给定一些二进制/位串

<<1,2,3,4,5>>

如何将其拆分为 n 位 block 。

其中 n 可以是 1 位、2 位等。

所需的 6 位输出

上面以位形式给出二进制0000000100000010000000110000010000000101

[<<0::size(6)>>, <<16::size(6)>>, <<8::size(6)>>, <<3::size(6)>>, ...]

最佳答案

最简单的方法可能是使用带有二进制生成器的 for 推导式:

for << chunk::size(6) <- binary >>, do: <<chunk::size(6)>>

我们可以将它隐藏在函数后面

def chunk_bits(binary, n) do
for << chunk::size(n) <- binary >>, do: <<chunk::size(n)>>
end

这给出了所需的输出:

iex> chunk_bits(<<1, 2, 3, 4, 5>>, 6)
[<<0::size(6)>>, <<16::size(6)>>, <<8::size(6)>>, <<3::size(6)>>,
<<1::size(6)>>, <<0::size(6)>>]

关于elixir - 如何将二进制文件分割成N位 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734845/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com