【发布时间】:2011-02-04 23:53:14
【问题描述】:
我有一个基于 MAC 地址的网络表示的 erlang 位串,例如<<255,0,0,0,0,1>>,并希望将其转换为整数。进行这种转换的最有效方法是什么?
谢谢, 马特。
【问题讨论】:
标签: erlang
我有一个基于 MAC 地址的网络表示的 erlang 位串,例如<<255,0,0,0,0,1>>,并希望将其转换为整数。进行这种转换的最有效方法是什么?
谢谢, 马特。
【问题讨论】:
标签: erlang
您可以使用: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
使用这些可变尺寸,您可以随心所欲地解压。
【讨论】:
读出来:
2> <<N:48/integer>> = <<255,0,0,0,0,1>>.
<<255,0,0,0,0,1>>
3> N.
280375465082881
虽然它与您想要的数字不匹配。也许是由于一些浮点舍入错误?
【讨论】:
1> binary_to_list(>)。
[255,0,0,0,0,1]
例如。
【讨论】: