| There's one area I wish we did differently which I think is a hang-over from big-endian. It's the order of bytes when we write out hex dumps of memory. You'll always get something like this: ```
00000000 : 00 01 02 03 04 05 06 07
00000008 : 08 09 0A 0B 0C 0D 0E 0F
``` On a big-endian machine, when you wrote 0x1234 to address 0x0000000 you got: ```
00000000 : 12 34 02 03 04 05 06 07
00000008 : 08 09 0A 0B 0C 0D 0E 0F
``` On a little-endian machine you have to either do mental gymnastics to reorder the bytes, or set the item size to match your data item size. ```
00000000 : 34 12 02 03 04 05 06 07
00000008 : 08 09 0A 0B 0C 0D 0E 0F
``` If we wrote the bytes with the LS byte on the right (just as we do for bits) then it wouldn't be an issue. ```
00000000 : 07 06 05 04 03 02 12 34
00000008 : 0F 0E 0D 0C 0B 0A 09 08
``` |
It could be argued that little endian is the more natural way to write numbers anyway, for both humans and computers. The positional numbering system came to the West via Arabic, after all.
Most of the confusion when reading hex dumps seems to arise from how the two nibbles of each byte being in the familiar left-to-right order clashes with the order of bytes in a larger number. Swap the nibbles, and you get "43 21", which would be almost as easy to read as "12 34".