我是 erlang 新手,有一个可能很简单的问题。
假设我有类似 A = [ 7, 203, 15, 11 ]
和一些二进制 B
的东西。 A
和 B
都是在运行时生成的。
有没有一种简单的方法可以通过 A
中描述的位置检查 B
中的位。
因此,要检查的第一个位是 7,接下来是 203,依此类推。
我意识到我可以对 A
进行排序并迭代 B
直到到达 A
中的位置,但这似乎有点结束了对于这样一个简单的问题来说,这是最重要的。
提前致谢!
最佳答案
您可以执行类似以下模块的操作:
-module(bits).
-export([select/2]).
select(Pattern, Bitstring) -> select(Pattern, Bitstring, []).
select([], _, Acc) -> lists:reverse(Acc);
select([H | T], Bitstring, Acc) ->
Pos = H - 1,
<<_:Pos/bitstring, B:1/integer, _/bitstring>> = Bitstring,
select(T, Bitstring, [B | Acc]).
关于erlang - 访问二进制中的变量位位置 - Erlang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16918468/