二进制Erlang的整数

BAR*_*BAR 14 erlang integer list

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

543 = <<"543">>
Run Code Online (Sandbox Code Playgroud)

我怎么能没有这样做

integer_to_list(list_to_binary(K)).
Run Code Online (Sandbox Code Playgroud)

hdi*_*ima 28

如果你想将543转换为<<"543">>我认为你找不到比以下更快的东西:

1> list_to_binary(integer_to_list(543)).
<<"543">>
Run Code Online (Sandbox Code Playgroud)

因为在这种情况下两个函数都用C实现.

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

1> binary:encode_unsigned(543).
<<2,31>>
2> binary:encode_unsigned(543, little).
<<31,2>>
Run Code Online (Sandbox Code Playgroud)


And*_*ill 14

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


Dam*_*n R 5

你可以尝试类似的东西

6> A = 12345.                       
12345
7> B = <<A:32>>.
<<0,0,48,57>>
Run Code Online (Sandbox Code Playgroud)

但这需要您提前知道最大位数。