给定一个整数,98749287,是否有一些内置/ libray函数,Erlang或Elixir,用于获取字节大小?
澄清,用于表示二进制数字的最小字节数。
看起来很简单,并且已经使用“基于分区”方法编写了一个函数,然后计算了位,但是经过一些搜索后,文档还没有找到任何看似有用的东西。
答案 0 :(得分:11)
如果您有无符号整数,则可以使用以下代码段:
byte_size(binary:encode_unsigned(Integer))
示例:
1> byte_size(binary:encode_unsigned(3)).
1
2> byte_size(binary:encode_unsigned(256)).
2
3> byte_size(binary:encode_unsigned(98749287)).
4
答案 1 :(得分:2)
试试这个表达式:
Value = (... your input ...),
NumBytes = size(integer_to_binary(Value, 2) + 7) div 8.
参考:http://www.erlang.org/doc/man/erlang.html#integer_to_binary-2