3 ms·
This whole endianness issue can be traced to western civilization adopting Arabic numbers. Western languages are written left to right, but Arabic is right to l
by drob518 7mo ago
This whole endianness issue can be traced to western civilization adopting Arabic numbers. Western languages are written left to right, but Arabic is right to left. Thus, Arabic numbers appear as big-endian when viewed in western languages. Consequently, big-endian appears to be "normal" for us in the modern age. But in Arabic, numbers appear little-endian because everything is right to left. Roman numbers are big-endian, though. Maybe that's why we kept the Arabic ordering even when adopting the system? We could have flipped Arabic numbers around and written them as little-endian, but we didn't.
- zajio1am 7mo ago'Arabic' numbers comes originally from India, from Brahmi numerals. And Brahmi script was left to right. So big-endian was 'normal' even originally, it was Arabs who kept left-to-right numbers within right-to-left script (and therefore use little-endian relative to direction of Arabic script).
- zephen 7mo ago> it was Arabs who kept left-to-right numbers within right-to-left script Do they do this? I thought they swapped this as well.
- Narishma 7mo agoThere are actually two ways to read numbers in Arabic. The most common is to start from the most significant digit and read left-to-right until the last two digits, which you then read right-to-left. A less common alternative is to read right-to-left starting from the least significant digit.
- zephen 7mo agoInteresting! How do you know which alternative is being used?
- Narishma 7mo agoTo give an example, you could read 1234 as either 'one thousand and two hundred and four and thirty' or 'four and thirty and two hundred and one thousand'. Now that I think about it though, I've only seen the latter way used for the year in a date.
- deleted 7mo ago[deleted]
- pezezin 7mo agoHow do you read a number like 1234? "One thousand two hundreds thirty four", big endian. Most (all?) Western languages say out their numbers in big endian, as do East Asian languages like Chinese, Japanese and Korean. It is only natural that we write down our numbers in big endian, it can be argued that the mistake was making little endian CPUs.
- userbinator 7mo agoLittle endian: byte N has value 256^N, bit n has value 2^n. Big endian: byte N has value 256^(L-N), bit n has value 2^n or 2^(l-n) depending on the architecture (some effectively have little bit-endian but big byte-endian) and where L and l are the byte and bit size of the whole integer respectively. Design hardware or even write arbitrary precision routines, and you'll quickly realise that "big endian is backwards, little endian is logical".
- zajio1am 7mo agoAs bits are generally not addressable / not ordered, it makes no sense to call CPU architecture big/little bit-endian. That makes sense only for serial lines/buses.
- userbinator 7mo agoWrong for any CPU with bit manipulation instructions... which is nearly all of them.
- DavidVoid 7mo agoHow do you read a number like 17? "seventeen", small endian. Language is messy, some more than others [1]. [1]: https://en.wikipedia.org/wiki/Danish_language#Numerals https://en.wikipedia.org/wiki/Danish_language#Numerals
- pezezin 7mo ago"Diecisiete", still big endian. (you could make an argument for numbers between 11 and 15 though) Yeah, I know there are exceptions, but on average most human languages are big endian.