[erlang-questions] Bit syntax

Vlad Dumitrescu vladdu55@REDACTED
Wed Mar 9 15:55:10 CET 2011


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> 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>> 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
> >
>
>


More information about the erlang-questions mailing list