如何转换几个字节上的大数字?

Ber*_*aud 2 erlang

如果一个数字是从4个字节开始,从LSB到MSB,如何将其转换为整数?例:

<<77,0,0,0>> shall give 77
Run Code Online (Sandbox Code Playgroud)

<<0,1,0,0>> shall give 256

Let S = <<0,1,0,0>>, 
<<L1,L2,L3,L4>> = S,  
L = L1*1 + L2*256 + L3*65536 + L4*16777216,
Run Code Online (Sandbox Code Playgroud)

但它不优雅......

arc*_*lus 9

Erlang中的位语法以非常简单的方式执行此操作:

<<A:32/little>> = <<0,1,0,0>>,
A.
% A = 256
Run Code Online (Sandbox Code Playgroud)

或作为一种功能:

decode(<<Int:32/little>>) -> Int.

% decode(<<0,1,0,0>>) =:= 256.
Run Code Online (Sandbox Code Playgroud)