gekko513
macrumors 603
Well this is a nice explanation but not really accurate. When computer systems went beyond 8 bit, they all still kept backwards compatibility to 8 bit computation and storage. Memory is therefore still adressed with a number that points to 8 bits.ssamani said:Specifically, under ASCII, characters are stored as an 8 bit number. Therefore in a 32 bit system you can store 4 ASCII characters in each memory value (2 in 16 and 8 in 64). I can't remember which way is which but one out of Intel / Motorola with the x86 and the 68xxx chose to store "Nice" as "Nice" and the other as "eciN". The reason for choosing the latter method is that it makes some string handling easier for a CPU. Emulators have to handle this difference when running on different architectures.
"Nice" is always stored as
Address - Value
0x0000 - N
0x0001 - i
0x0002 - c
0x0003 - e
But actually the direction of storage of strings are decided by the software and not by the processor.
The difference between little and big endian is the way 16, 32 or more bit values are stored. A 32 bit value is stored as four 8 bit values. In big-endian system, the numbers are stored with the most significant 8 bits at the lowest adress. Little-endian is the other way around. So the number 520 (256x2 + 8) is stored like this
Address - Big-endian - Little-endian
0x0000 - 0 - 8
0x0001 - 0 - 2
0x0002 - 2 - 0
0x0003 - 8 - 0
Intel processors are little-endian. And this article claims that the PowerPC system is bi-endian and can understand both.