Help with bit pattern

Bob Ippolito bob@REDACTED
Fri Aug 25 00:30:22 CEST 2006


On 8/24/06, Ulf Wiger <ulf@REDACTED> wrote:
> Den 2006-08-24 19:47:44 skrev Bob Ippolito <bob@REDACTED>:
>
> >
> > I see you're reading a SWF header... The padding size should be (8 -
> > ((5 + NBits1 * 4) rem 8)). I don't think that bit syntax is going to
> > work directly anyway because IIRC SWF files store bits in MSB first
> > order(!) for variable bit length fields.
>
> You can specify endianness in bit syntax patterns. Or did you mean
> something else?
>
>  From the reference manual, on the Endianness type specifier:
>
> "Endianness = big | little | native
> Native-endian means that the endian will be resolved at load time to be
> either big-endian or little-endian, depending on what is native for the
> CPU that the Erlang machine is run on. The default is big."

You're right, I was thinking of a different part of the SWF format
that's rather nuts:

<<TagCodeAndLength:16/little, _/binary>> = Data,
<<TagCode:10, Length:6>> = <<TagCodeAndLength:16>>.

There's also a float encoding in the SWF format that looks like this:

<<Left:32, Right:32>> = <<Float:64/float-little>>,
<<Right:32, Left:32>>.

(I wish I was kidding)

-bob



More information about the erlang-questions mailing list