[erlang-bugs] Documentation request: integer encoding and truncation

Edwin Fine erlang-questions_efine@REDACTED
Fri Aug 22 19:09:30 CEST 2008


I refer to the following post. I was caught unawares by this apparently
undocumented behavior.

http://www.erlang.org/pipermail/erlang-questions/2007-July/027657.html

May I strongly recommend placing this information (taken from the above
post) in the Erlang Reference Manual, in the section on binaries. It may
save other people time and confusion. A further question is whether or not
this *should* be the behavior. As a language used for writing highly
reliable systems, shouldn't this overflow condition be caught? Maybe as an
optional run-time flag?

Integer Encoding and Truncation

<<I:N>>

is equivalent to

<<(I band ((1 bsl N) - 1)):N>>

That is, if the integer I can not be represented in N bits, the low N bits
of the integer is put into the binary.

Binaries work in a similar manner e.g.

1> <<1,2>> = << (<<1,2,3>>):2/binary >>.
<<1,2>>

Regards,
Edwin Fine
-- 
For every expert there is an equal and opposite expert - Arthur C. Clarke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20080822/fbb582a0/attachment.htm>


More information about the erlang-bugs mailing list