ビット列の長さが必要です。そのような関数を作成しました:
len( << Bitstr/bitstring >> ) ->
len( Bitstr, 0 ).
len( << _X, Tail/bitstring >>, Len ) ->
len( Tail, Len + 8 );
len( << _X:7, Tail/bitstring >>, Len ) ->
len( Tail, Len + 7 );
len( << _X:6, Tail/bitstring >>, Len ) ->
len( Tail, Len + 6 );
len( << _X:5, Tail/bitstring >>, Len ) ->
len( Tail, Len + 5 );
len( << _X:4, Tail/bitstring >>, Len ) ->
len( Tail, Len + 4 );
len( << _X:3, Tail/bitstring >>, Len ) ->
len( Tail, Len + 3 );
len( << _X:2, Tail/bitstring >>, Len ) ->
len( Tail, Len + 2 );
len( << _X:1, Tail/bitstring >>, Len ) ->
len( Tail, Len + 1 );
len( <<>>, Len ) ->
Len.
しかし、おそらく、ビット列の長さを取得するためのより最適な方法はありますか? 多分いくつかのBIF?(実際に探したのですが、見つかりませんでした。)
ありがとう