September 13th, 2024

Byte Ordering: On Holy Wars and a Plea for Peace (1980)

The document explains floating-point number storage, emphasizing consistent bit order's importance. It discusses Little-Endian and Big-Endian systems, their implications for data processing, and advocates for unified data representation to reduce compatibility issues.

Read original articleLink Icon
Byte Ordering: On Holy Wars and a Plea for Peace (1980)

is a detailed explanation of how floating-point numbers are stored, emphasizing the importance of consistent ordering in data representation. The document discusses the ongoing debate between Little-Endian and Big-Endian systems, highlighting the implications of each approach on data transmission and storage. It illustrates how different computer architectures adopt either method, affecting how data is processed and interpreted. The author argues for the necessity of a consistent bit order to facilitate effective communication between systems, regardless of how they group bits into larger units like bytes or words. The text also touches on the historical context of these conventions and their impact on modern computing, suggesting that the choice of endianness can lead to confusion and compatibility issues in software development and data exchange.

- The conflict between Little-Endian and Big-Endian systems centers on the order of bits in data representation.

- Consistent bit order is crucial for effective communication and data processing across different computer architectures.

- The document highlights the historical context and implications of endianness in modern computing.

- Different computer systems may adopt either endianness, affecting data interpretation and compatibility.

- The author advocates for a unified approach to data representation to minimize confusion in software development.

Link Icon 10 comments
By @ale42 - 5 months
Have a look at the date of the document... although the content is serious, the way it's discussed might be a bit in the line of these: https://en.wikipedia.org/wiki/April_Fools'_Day_Request_for_C...
By @pianosaurus - 5 months
Who needs CSS for justified text when you can just do it 1980-style monospaced justification? This makes me happy, and I have no idea why.
By @082349872349872 - 5 months
> Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. —SKB
By @ginko - 5 months
To this day I think that article mixed up the terms, causing confusion ever since. "Little-endian" to me implies that the least significant byte of a word is at the end of a byte sequence, but it's the other way round.

I understand that it's from Gulliver's Travels where it's about which end to start breaking an egg from - but without knowing this you can easily end up getting this wrong.

By @tempodox - 5 months
While I prefer to crack my eggs from the little end, I insist on big-endian byte order. Sadly, modern CPUs are mostly made by barbarians (i.e. Little-Endians).
By @kstenerud - 5 months
I actually did a writeup on this: https://www.technicalsourcery.net/posts/on-endianness/

TLDR: Little endian is better for most data situations (and incidentally is a more natural ordering for humans), so it's good that it won out in the end.

By @USiBqidmOOkAqRb - 5 months
Silly aside: I didn't read the book and was very confused for a long time since I assumed endian meant the specified byte goes last.
By @feverzsj - 5 months
I think most industry wire protocols are still big endian.
By @SSLy - 5 months
Lmao, this has raw actual-ANSI-control-code 000C <control> = FORM FEED (FF) in the text.