在erlang中,有一些按位操作来操作整数,例如:
1> 127 bsl 1.
254
Run Code Online (Sandbox Code Playgroud)
还可以将整数打包成一个字节序列
<< 16#7F, 16#FF >>
Run Code Online (Sandbox Code Playgroud)
是否有可能,或者是否有任何运算符或BIF可以对二进制打包数据执行按位运算(例如AND,OR,XOR,SHL,SHR)?
例如(如果bsl在二进制包上工作 - 它没有):
1> << 16#7F, 16#FF >> bsl 1.
<< 255, 254 >>
Run Code Online (Sandbox Code Playgroud)
试试这种方式:
bbsl(Bin,Shift) -> <<_:Shift,Rest/bits>> = Bin, <<Rest/bits,0:Shift>>.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3686 次 |
最近记录: |