listerlanginteger

How do I convert an integer to a binary in Erlang?


I am trying to make an integer into a binary:

543 = <<"543">>

How can I do this without

integer_to_list(list_to_binary(K)).

Solution

  • If you want to convert 543 to <<"543">> I don't think you can find something faster than:

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

    Because in this case both functions implemented in C.

    If you want to convert integer to the smallest possible binary representation you can use binary:encode_unsigned function from the new binary module like this:

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