Erlang位串到整数转换

时间:2011-02-04 14:49:06

标签: erlang

我有一个基于MAC地址的网络表示的erlang比特串,例如, <<255,0,0,0,0,1>>,并希望将其转换为整数。这种转换最有效的方法是什么?

谢谢, 太

3 个答案:

答案 0 :(得分:15)

您可以使用:Size-unit:N选项选择打包/匹配的数据量:

1> <<X:6/integer-unit:8>> = <<255,0,0,0,0,1>>.
<<255,0,0,0,0,1>>
2> X.
280375465082881

或更动态:

3> Bin = <<255,0,0,0,0,1>>.                 
<<255,0,0,0,0,1>>
4> Size = size(Bin). 
6
5> <<Int:(Size)/integer-unit:8>> = Bin.     
<<255,0,0,0,0,1>>
6> Int.
280375465082881

使用这些可变尺寸,您可以随心所欲地解压缩。

答案 1 :(得分:14)

读出来:

2> <<N:48/integer>> = <<255,0,0,0,0,1>>.
<<255,0,0,0,0,1>>
3> N.
280375465082881

虽然它与您想要的数字不符。也许是由于一些浮点舍入错误?

答案 2 :(得分:1)

1&GT; binary_to_list(小于;&LT; 255,0,0,0,0,1&GT;&GT)。

[255,0,0,0,0,1]

例如。