二进制格式,按位运算存在吗?例如.<< 16#7F,16#FF >> bsl 1

Mik*_*mer 8 binary erlang xor

在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)

Hyn*_*dil 6

试试这种方式:

bbsl(Bin,Shift) -> <<_:Shift,Rest/bits>> = Bin, <<Rest/bits,0:Shift>>.
Run Code Online (Sandbox Code Playgroud)