[erlang-questions] binary elements greater than 255

Peter Lund erlang@REDACTED
Sat Apr 26 07:04:58 CEST 2008


Please observe that this is just how the shell works...
 
In any erlang program you make, you would use the list_to_binary/1 function.

Eshell V5.3  (abort with ^G)
1> <<0,1111111111>>.
<<0,199>>
2> list_to_binary([0,1111111111]). 

=ERROR REPORT==== 26-Apr-2008::07:02:13 ===
Error in process <0.24.0> with exit value: 
{badarg,[{erlang,list_to_binary,[[0,16#423A35C7]]},{erl_eval,do_apply1,5},{shell,eval_loop,2}]}

** exited: {badarg,[{erlang,list_to_binary,[[0,1111111111]]},
                    {erl_eval,do_apply1,5},
                    {shell,eval_loop,2}]} **

And here you get a proper crash

With correct indata you get good output.

3> list_to_binary([0,111,255]).  
<<0,111,255>>

/Peter


Igor Ribeiro Sucupira skrev:
> I think this is the classic situation "If you do it wrong, the
> behaviour is undefined".  :-)
> (On the case at hand, it looks it's just taking the least significant
> byte from the number)
>
> In fact, maybe it should raise a warning when compiling a module with
> this kind of code... (?)
>
> On Fri, Apr 25, 2008 at 10:01 PM, Zvi <exta7@REDACTED> wrote:
>   
>>  Hi Igor,
>>
>>  I know that lately computer industry decided to switch from 6-bit to 8-bit
>>  bytes :), which when unsigned can hold values in range 0..255. But this
>>  wasn't my question. I asked, why Erlang compiler didn't return error, when
>>  you give it input like <<256>>. I think it's a bug.
>>
>>  Zvi
>>
>>
>>  Igor Ribeiro Sucupira wrote:
>>  >
>>  > No.
>>  > If you use integers in a binary, each must be in the range [0, 255]
>>  > (1-byte).
>>  >
>>  > Igor.
>>  >
>>  > On Fri, Apr 25, 2008 at 7:44 PM, Zvi <exta7@REDACTED> wrote:
>>  >>
>>  >>  Is this a bug?
>>  >>  Zvi
>>  >>  ------------------------------------------------------------
>>  >>  Erlang (BEAM) emulator version 5.6 [smp:2] [async-threads:0]
>>  >>
>>  >>  Eshell V5.6  (abort with ^G)
>>  >>  1>
>>  >>  1> <<0,255>>.
>>  >>  <<0,255>>
>>  >>  2> <<0,256>>.
>>  >>  <<0,0>>
>>  >>  3> <<0,257>>.
>>  >>  <<0,1>>
>>  >>  4> <<0,65536>>.
>>  >>  <<0,0>>
>>  >>  5> <<0,1111111111>>.
>>  >>  <<0,199>>
>>  >>  6>
>>     
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
>   




More information about the erlang-questions mailing list