如何在Erlang中将整数转换为二进制?

js4nwp54  于 2022-12-08  发布在  Erlang
关注(0)|答案(3)|浏览(187)

我试图把一个整数变成二进制:

543 = <<"543">>

我怎么能做到

integer_to_list(list_to_binary(K)).
wkftcu5l

wkftcu5l1#

如果您想将543转换为〈〈“543”〉〉,我认为您找不到比以下更快的方法:

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

因为在这种情况下,两个函数都是用C实现的。
如果你想把整数转换成尽可能小的二进制表示,你可以使用新的binary模块中的binary:encode_unsigned函数,如下所示:

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

6mzjoqzu2#

对于当前的读者,这是在R16中实现的,请访问http://erlang.org/doc/man/erlang.html#integer_to_binary-1

ih99xse1

ih99xse13#

您可以尝试以下操作

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

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

相关问题