[erlang-questions] sub-byte endianness in bit syntax

Michael McDaniel <>
Thu Aug 16 21:46:30 CEST 2007


On Thu, Aug 16, 2007 at 06:54:03PM +0100, Tony Finch wrote:
> On Wed, 15 Aug 2007, Bob Ippolito wrote:
> 
> > It takes a few seconds to figure this out yourself:
> >
> > 1> <<A:2/little, B:2/big, _:4>> = <<2#10100000>>, {A, B}.
> > {2,2}
> 
> It would be nice if this were documented.
> 
> How do you tell Erlang to fill bytes little-end first?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 documentation, programming examples, section 4.3

"
 The TypeSpecifierList is a list of type specifiers separated by hyphens.

Type
    The type can be integer, float, or binary. 
Signedness
    The signedness specification can be either signed or unsigned. Note that
     signedness only matters for matching. 
Endianness
    The endianness specification can be either big, little, or 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. 
Unit
    The unit size is given as unit:IntegerLiteral. The allowed range is 1-256. It
    will be multiplied by the Size specifier to give the effective size of the
    segment. 

Example:

X:4/little-signed-integer-unit:8
    

This element has a total size of 4*8 = 32 bits, and it contains a signed integer
in little-endian order.
"

~Michael



> 
> Tony.
> -- 
> f.a.n.finch  <>  http://dotat.at/
> IRISH SEA: SOUTHERLY, BACKING NORTHEASTERLY FOR A TIME, 3 OR 4. SLIGHT OR
> MODERATE. SHOWERS. MODERATE OR GOOD, OCCASIONALLY POOR.
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions
> 
> !DSPAM:52,46c48f8773321070549924!
> 
> 

-- 
Michael McDaniel
Portland, Oregon, USA
http://autosys.us
+1 503 283 5284



More information about the erlang-questions mailing list