13.5.3 Bit Ordering
The Bit_Order attribute specifies the interpretation
of the storage place attributes.
A bit ordering is a method of
interpreting the meaning of the storage place attributes.
(known in the vernacular as “big endian”) means that the
first bit of a storage element (bit 0) is the most significant bit (interpreting
the sequence of bits that represent a component as an unsigned integer
(known in the vernacular as “little endian”) means the opposite:
the first bit is the least significant.
For every specific
record subtype S, the following representation
Denotes the bit ordering for
the type of S. The value of this attribute is of type System.Bit_Order.
Bit_Order may be specified for
specific record types via an attribute_definition_clause
the expression of such a clause shall be static.
If Word_Size = Storage_Unit, the default bit ordering
is implementation defined. If Word_Size > Storage_Unit, the default
bit ordering is the same as the ordering of storage elements in a word,
when interpreted as an integer.
The storage place attributes of a component of a
type are interpreted according to the bit ordering of the type.
recommended level of support for the nondefault bit ordering is:
The implementation should support the nondefault
bit ordering in addition to the default bit ordering.
NOTE Bit_Order clauses make it possible
to write record_representation_clause
that can be ported between machines having different bit ordering. They
do not guarantee transparent exchange of data between such machines.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe