gpt4 book ai didi

binary - 将二进制中的以 2 为基数的数字转换为 Erlang 整数

转载 作者:行者123 更新时间:2023-12-02 06:55:14 26 4
gpt4 key购买 nike

假设我有一个用二进制表示法表示的数字,如下所示:

<<0:1, 0:1, 0:1, 0:1, 0:1, 1:1, 1:1, 1:1>>

这是数字 7 的二进制表示法,在 shell 中计算它甚至会得到 7:

<<7>>

如何将此二进制文件转换为 Erlang 整数?我可以将二进制文件转换为列表,并获取其中的单个整数值,但这不适用于需要多个字节的大数字,因为列表将包含二进制文件中每个字节的一个项目。

最佳答案

使用模式匹配:

Bin = <<0:1, 0:1, 0:1, 0:1, 0:1, 1:1, 1:1, 1:1>>,
Size = bit_size(Bin),
<<X:Size>> = Bin.

之后,变量X包含整数7。无论二进制包含多少位,这都有效。

<小时/>

如果您想知道,实际上有必要在匹配之前将位大小绑定(bind)到变量 Size。来自 the section on Bit Syntax Expressions of the Erlang Reference Manual :

Used in a bit string construction, Size is an expression that is to evaluate to an integer.

Used in a bit string matching, Size must be an integer, or a variable bound to an integer.

关于binary - 将二进制中的以 2 为基数的数字转换为 Erlang 整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40334637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com