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