二进制Erlang的整数

时间:2010-10-24 22:06:22

标签: list erlang integer

我试图将整数变成二进制:

543 = <<"543">>

如果没有

,我怎么能这样做
integer_to_list(list_to_binary(K)).

3 个答案:

答案 0 :(得分:28)

如果您想将543转换为&lt;&lt;“543”&gt;&gt;我认为你找不到比以下更快的东西:

1> list_to_binary(integer_to_list(543)).
<<"543">>

因为在这种情况下,两个函数都是用C实现的。

如果要将整数转换为可能的最小二进制表示,可以使用新binary:encode_unsigned模块中的binary函数,如下所示:

1> binary:encode_unsigned(543).
<<2,31>>
2> binary:encode_unsigned(543, little).
<<31,2>>

答案 1 :(得分:14)

对于目前的读者,现在在R16中实现,请参阅http://erlang.org/doc/man/erlang.html#integer_to_binary-1

答案 2 :(得分:4)

您可以尝试类似

的内容
6> A = 12345.                       
12345
7> B = <<A:32>>.
<<0,0,48,57>>

但这要求您事先知道最大位数。