Подтвердить что ты не робот

Целое число в двоичном Erlang

Я пытаюсь сделать целое число в двоичном формате:

543 = <<"543">>

Как это сделать без

integer_to_list(list_to_binary(K)).
4b9b3361

Ответ 1

Если вы хотите преобразовать 543 в < 543" → , я не думаю, что вы можете найти что-то быстрее, чем:

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>>

Ответ 3

Вы можете попробовать что-то вроде

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

Но это требует, чтобы вы знали максимальное количество бит заранее.