ste*_*emm 2 erlang bit-manipulation
我有一个问题,理解为什么实际上需要"单位大小"块.
我可以打字:
1> << Y:4/integer-unit:8 >> = << 1,2,3,4 >>.
<<1,2,3,4>>
2> Y.
16909060
Run Code Online (Sandbox Code Playgroud)
但我可以在不指定单位大小的情况下得到相同的结果:
3> << X:32/integer >> = << 1,2,3,4 >>.
<<1,2,3,4>>
4> X.
16909060
Run Code Online (Sandbox Code Playgroud)
所以,请告诉我情况,当我可以获得使用"单位大小"块的真正好处.
谢谢
我找到了案例,当需要"单位大小"块时:
如果你需要读取下一个块的比特流大小,并匹配它
这个例子应该说明问题:
1> << Length, Value:(Length*8)/integer >> = << 2, 256:16 >>.
* 2: illegal bit size
Run Code Online (Sandbox Code Playgroud)
但是你可以使用"单位大小"块简单地做到这一点:
2> << Length, Value:Length/integer-unit:8 >> = << 2, 256:16 >>.
<<2,1,0>>
3> Value.
256
Run Code Online (Sandbox Code Playgroud)