Erlang 获取任意整数的字节大小

Erlang 获取任意整数的字节大小,erlang,elixir,Erlang,Elixir,给定一个整数,比如98749287,是否有一些内置/库函数(Erlang或Elixir)用于获取字节大小 为了澄清,用于以二进制表示数字的最小字节数 看起来很简单,我们已经用“按基除”的方法编写了一个函数,然后计算位,但是经过几个小时的搜索,文档还没有找到任何有用的东西 试试这个表达式: Value = (... your input ...), NumBytes = size(integer_to_binary(Value, 2) + 7) div 8. 参考:如果您有一个无符号整数,可以使

给定一个整数,比如98749287,是否有一些内置/库函数(Erlang或Elixir)用于获取字节大小

为了澄清,用于以二进制表示数字的最小字节数

看起来很简单,我们已经用“按基除”的方法编写了一个函数,然后计算位,但是经过几个小时的搜索,文档还没有找到任何有用的东西

试试这个表达式:

Value = (... your input ...),
NumBytes = size(integer_to_binary(Value, 2) + 7) div 8.

参考:

如果您有一个无符号整数,可以使用以下代码段:

字节大小(二进制:编码无符号(整数))
例如:

1>字节大小(二进制:无符号编码(3))。
1.
2> 字节大小(二进制:无符号编码(256))。
2.
3> 字节大小(二进制:无符号编码(98749287))。
4.

OOC,你想做什么?我必须使用基本的编码规则(将任意整数部分打包成7位的序列)对一些整数进行编码。Erlang有一个ASN.1模块工作得相当好。根据您的总体需求,这可能是一个更好的选择(我经常使用!)。这正是我想要的。学习长生不老药的问题是很容易忘记Erlang文档(或者说“避免”)。现在可以扔掉一些函数。是的,可能很棘手。这仅在您使用OSX时才有用,但我通常使用Dash并同时搜索Erlang和Elixir文档,以查找“整数”、“二进制”和“大小”等内容。这是找到可能相关函数的好方法。这似乎是可行的。虽然留下了一个混乱的小数点,必须四舍五入。关于+7的想法是什么?+7是试图总结。请将除法更改为地板除法或整数除法,如C运算符
/
。将整数除法改为
div 8