

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer


share|improve this question





share|improve this answer
@MichaelBorgwardt ARM does – World Engineer Sep 23 '12 at 20:35
@zxcdw - even in assembler, you don't always need to know the endian order. Constants, for example, don't need to be specified a byte at a time. The situation is somewhat similar to a certain style of serialization in C - x & 0xFF always gives you the least significant byte irrespective of endian ordering (assuming your bytes are 8 bits each) because you've specified the bits you're interested in by their value, not their relative position in memory. – Steve314 Sep 24 '12 at 4:42

Endians only really matters when you are transferring binary data systems.



share|improve this answer

No, nobody has won. We as a species we have failed to standardize the order in which we store our bytes, along with the direction we write and the side of the street we drive on.

As a consequence, anyone who wants to transfer data between two different systems over a network or in a file, has only about a 50% chance of the reasonable initial version of their data dumping code being correct in their environment, and even if it works, has a 50% chance of working in their customer's.

To deal with this you need to go look up platform specific functions with names like "htonl" in headers with names obviously dating back to the 70's like "arpa/inet.h", because the situation has not improved since then and probably never will.

share|improve this answer
turns out we have standarised - instead of sending 4 bytes to represent an integer, we send a block of text formatted with special header text, angle brackets, keywords and an ASCII representation of those 4 bytes. The receiving end then parses the formatting to get the integer text and converts it back into 4 bytes. This is called progress, I'm told :-) – gbjbaanb Oct 29 '15 at 10:53
$ aptitude search xml | wc -l 677 – Andrew Wagner Oct 29 '15 at 14:14

There is still no consensus:

  • The majority of larger computer systems (server/desktop/laptop) currently use little-endian architectures
  • The majority of smaller computers (tablets/phones) use an endianness-independent processor architecture, but run operating systems that use little-endian order

So at the hardware level, LE is far more common. But:

  • Most inter-computer communication is carried out using protocols that specify big-endian order
  • A very large proportion of the world's software runs on a virtual platform that defaults to big-endian order whenever data is written to external storage.

Both orders are going to be with us for the foreseeable future.

share|improve this answer
The majority of the largest systems (i.e., "big iron") is typically big-endian. That is, so-called mini or mainframe systems (which make up a huge amount of the backend processing most of us don't care about.) – jdv Oct 29 '15 at 13:26

Your Answer


