OT:
uint32_t data=0x01234567;
Little endian Big endian
+----+----+----+----+ +----+----+----+----+
|0x67|0x45|0x23|0x01| |0x01|0x23|0x45|0x67|
+----+----+----+----+ +----+----+----+----+
byte: 0 1 2 3 0 1 2 3
Little Endian (e.g. how it appears on x86) vs
Big Endian (e.g. how it appears on m68k and PowerPC)
Recently a friend wanted to realize a 68K clone in Little Endian
Endianess is a little endian machine. The least significant bytes are stored at the lowest address. This differs from the 68k which a big endian machine.This impacts the order of data stored in the system and specification of immediate constants.
And people claimed that
Oh, WOW, a little-endian 68K?!! I love it!! So much more elegant and sensible.
more elegant? more sensible? more-UAT-W-h-a-t?
My mind goes back when people programmed directly in machine codes and their program-lists where just a tabs of hex numbers. Oh, it's so clear to me WHY Motorola and IBM have always enjoyed the BigEndian format: because it makes it natural, since for human beings, numbers usually start with the higher part on the left.
FSCKOFF Intel!!! And their silly decision to "make it different", reinventing the wheel in Little Endian.
btw, now why on the why ARM wants to be LE(1)?!?!?
Business decision? Marketing? Intel alliance?
(as initially intel wanted to produce arm chips)
Probably technical decisions are like blowing in the wind, but for sure we are still (and we forever will be) annoyed by their choice
edit:
(1) yes, ARM-chips have a trick somewhere in the chip-configuration which allows them to switch from LE to BE. Some MIPS modern chips (e.g. MIPS32/R2) have a similar trick as well as the old MIPS-R3K used by SONY for their PlayStation1. The chip is configured as LE/BE (firmware choice) as the first instruction executed when the power on. But it's not the point.