Целое число в двоичный Erlang - PullRequest
       12

Целое число в двоичный Erlang

14 голосов
/ 25 октября 2010

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

543 = <<"543">>

Как я могу сделать это без

integer_to_list(list_to_binary(K)).

Ответы [ 3 ]

28 голосов
/ 25 октября 2010

Если вы хотите преобразовать 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>>
14 голосов
/ 27 июня 2013

Для текущих читателей, это теперь реализовано в R16, см. http://erlang.org/doc/man/erlang.html#integer_to_binary-1

4 голосов
/ 25 октября 2010

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

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

Но для этого необходимо заранее знать максимальное количество бит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...