[erlang-questions] Bit syntax
Bob Cowdery
bob@REDACTED
Wed Mar 9 16:29:43 CET 2011
Yes. I realised that as soon as I sent the message. I guess bad match
accounts for a large number of error messages. All seems to be working now.
Bob
On 09/03/2011 15:17, Bob Ippolito wrote:
> 8*51 is 408 (which is by coincidence the same as the number of bits),
> 16#00 is 0. Either way you're extending it to 408 bits.
>
> You're getting a bad match presumably because A, B, and/or C are
> already bound in your shell. Do an f(). first to forget all of the
> bound variables in the shell, and then it will work.
>
> 1> <<A:24, B:48, C:408>> = <<16#effe02:24,16#00:48,16#00:408>>.
> <<239,254,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
> 0,0,0,...>>
> 2> {A, B, C}.
> {15728130,0,0}
>
> On Wed, Mar 9, 2011 at 7:09 AM, Bob Cowdery <bob@REDACTED> wrote:
>> What I actually want is 51 bytes of 16#00.
>>
>> 12> <<A:24, B:48, C:408>> = <<16#effe02:24,16#00:48,16#00:408>>.
>> ** exception error: no match of right hand side value
>>
>> <<239,254,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
>> 0,0,0,...>>
>>
>> Why is this different. Isn't it just saying 00 as a 408 bit number
>> rather than (8*51)?
>>
>> Bob
>>
>> On 09/03/2011 14:55, Vlad Dumitrescu wrote:
>>> Your C is 8*51 as a 408 bit number. You probably want 16#00:408 instead.
>>>
>>> /Vlad
>>>
>>> On Wed, Mar 9, 2011 at 15:50, Bob Cowdery <bob@REDACTED
>>> <mailto:bob@REDACTED>> wrote:
>>>
>>> Thanks. The syntax did look a bit odd for a repeating group. I
>>> pulled it
>>> off the web somewhere.
>>>
>>> So if I say:
>>>
>>> 7> <<A:24, B:48, C:408>> = <<16#effe02:24,16#00:48,(8*51):408>>
>>> .
>>> <<239,254,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
>>> 0,0,0,...>>
>>> 8> A.
>>> 15728130
>>> 9> B.
>>> 0
>>> 10> C.
>>> 408
>>>
>>> What do these bound values mean. C is supposed to be 51 zero bytes
>>> (408
>>> bits). Why is C bound to the number of bits.
>>>
>>> Bob
>>>
>>> On 09/03/2011 14:29, Vlad Dumitrescu wrote:
>>> > Hi!
>>> >
>>> > On Wed, Mar 9, 2011 at 15:21, Bob Cowdery
>>> <bob@REDACTED <mailto:bob@REDACTED>
>>> > <mailto:bob@REDACTED
>>> <mailto:bob@REDACTED>>> wrote:
>>> >
>>> > Hi
>>> >
>>> > I'm clearly not understanding the bit syntax properly. Could
>>> someone
>>> > explain to me what I am doing wrong here. Why does the first
>>> not match
>>> > when its the right shape but the second does when its the
>>> wrong shape.
>>> > The bound values don't make much sense to me either.
>>> >
>>> > 1> <<A:24, B:48, C:408>> =
>>> <<16#effe02:24,16#00:48,16#00,(8*51):408>>.
>>> > ** exception error: no match of right hand side value
>>> >
>>> >
>>> > There is an "extra" 16#00 on the right side that is not matched
>>> on the
>>> > left.
>>> >
>>> >
>>> > 2> <<A:32, B:48, C:408>> =
>>> <<16#effe02:24,16#00:48,16#00,(8*51):408>>.
>>> >
>>> >
>>> > The larger size for A "swallows" the extra value, but shifts the
>>> > values a byte to the right.
>>> >
>>> > regards,
>>> > Vlad
>>> >
>>>
>>>
>>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
>
More information about the erlang-questions
mailing list