[erlang-questions] Bit Packing question

Santosh Kumar <>
Sat Dec 13 05:22:32 CET 2014


Hrm, I'm not sure I understand. Here's some code:

Num = 128.

128


So, Num is a number. I then do:

BNum = <<Num>>.


Now, BNum is a binary. I check it too:

is_binary(BNum).

true


I now, try doing:

Packet = <<BNum:4/bytes>>.

** exception error: bad argument


Here, I am trying to create another binary Packet, that is 4 bytes long as
and has as it's contents BNum. If what you say is true and "/bytes" is used
to pack Binary data this would work. Unless I am missing something.


Thanks for your response.


Santosh

On Fri, Dec 12, 2014 at 10:39 PM, Bob Ippolito <> wrote:
>
> 'bytes' is for packing binaries, not numbers. The working example you have
> is the correct way to do it.
>
>
> On Friday, December 12, 2014, Santosh Kumar <> wrote:
>
>> Hi group,
>> I was trying to pack a number into 4 bytes and was having a hard time
>> doing it. Here is what I was trying:
>>
>> 102> Num = 128.
>>
>> 128
>>
>> 103> <<Num:4/bytes>>.
>>
>> ** exception error: bad argument
>>
>>
>> While this works:
>>
>>
>> 104> <<Num:32>>.
>>
>> <<0,0,0,128>>
>>
>>
>> Here the packing into 32 bits works but the packing into 4 bytes fails.
>> Not sure why.
>>
>>
>> Any help, much appreciated.
>>
>>
>> Thanks
>>
>> Santosh
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20141212/12cbf139/attachment.html>


More information about the erlang-questions mailing list