integer to binary
Bjorn Gustavsson
bjorn@REDACTED
Fri Oct 7 13:45:55 CEST 2005
It is actually easier not to use the bit syntax.
For positive numbers the following function will do the trick:
int_to_bin(I) ->
int_to_bin(I, []).
int_to_bin(0, [B|Acc]) when B < 256 ->
list_to_binary([B|Acc]);
int_to_bin(N, Acc) ->
int_to_bin(N bsr 8, [N band 16#ff|Acc]).
/Björn
chandru <chandrashekhar.mullaparthi@REDACTED> writes:
> Hi,
>
> I want to convert an integer to a binary without having to
> guess/figure-out how many bytes are required to fit that integer.
> There doesn't seem to be a way to do this with the bit syntax.
>
> 11> <<12345678901:40>>.
> <<2,223,220,28,53>>
>
> 12> <<12345678901:48>>.
> <<0,2,223,220,28,53>>
>
> In the example above, the integer will fit in 5 bytes but I can't
> think of a way to specify this without trial and error. Any
> suggestions? I can write a function which will figure out how many
> bytes are required but it'll be nice to have a built-in way of doing
> it.
>
> cheers
> Chandru
>
--
Björn Gustavsson, Erlang/OTP, Ericsson AB
More information about the erlang-questions
mailing list