Byte Order in Multibyte Values
HP, IBM and Motorola 68000 systems store multibyte values in Big Endian
order, while Intel 80x86 and DEC VAX systems store them in Little Endian
order. Big Endian stores the high-order byte at the starting address
while Little Endian stores the low-order byte at the starting address.
The low-order byte contains the bits for the lowest possible values,
that is, 0-255, while the high-order byte contains the bits that specify
the large values (that is, 256-65535 in a short integer).
(The term endian is derived from a passage in Jonathan
Swift's Gulliver's Travels).
Swapping
integer data between computers of different
types is a difficult problem
unless you
convert the information into ASCII characters.
Sockets
has functions to convert
Long and Short Integers
to and from Internet standard byte ordering, which is Big Endian.
- htonl, convert host-to-network, long integer
- htons, convert host-to-network, short integer
- ntohl, convert network-to-host, long integer
- ntohs, convert network-to-host, short integer
Big Endian systems such as HP-UX and MPE are already compatible
with the network ordering, so they
can define these functions as null macros.
The Power PC is a bi-endian
processor; that is,
it supports both big- and little-endian addressing modes.
This bi-endian architecture enables software developers
to choose either mode when migrating OSes and applications
from other machines.