Erlang 位串到整数的转换

发布于 2024-10-16 01:31:09 字数 125 浏览 1 评论 0原文

我有一个基于 MAC 地址的网络表示的 erlang 位串,例如 <<255,0,0,0,0,1>>,并且想将其转换为整数。进行此转换的最有效方法是什么?

谢谢, 马特。

I have an erlang bitstring based on the network representation of a MAC address, e.g. <<255,0,0,0,0,1>>, and would like to convert it to an integer. What is the most efficient way to go about this conversion?

Thanks,
Matt.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

三寸金莲 2024-10-23 01:31:09

您可以使用 :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

使用这些可变大小,您可以解压缩很多数据任何你想要的。

You can choose how much data you pack/match by using the :Size and -unit:N options:

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

Or more dynamically:

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

Using these variable sizes, you can unpack pretty much whatever you want.

寄人书 2024-10-23 01:31:09

读出来:

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

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

Read it out:

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

Though it does not match the number you want. Perhaps due to some floating point rounding error?

灯下孤影 2024-10-23 01:31:09

1> binary_to_list(<<255,0,0,0,0,1>>).

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

例如。

1> binary_to_list(<<255,0,0,0,0,1>>).

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

For example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文