Little Endian vs Big Endian?

I'm having troubles wrapping my head on the two. I understand how to represent something in big endian.

For example -12 is 1111 1111 1111 0100

But why is the little endian representation 1111 0100 1111 1111 instead of 0100 1111 1111 1111?


Endianness is about byte address order. Little endian means the lower significant bytes get the lower addresses. Big endian means the other way around. So it's about the bytes (8-bit chunks) not nibbles (4-bit chunks). Most computers we use (there are a few exceptions) address bytes at the individual address level.

Taking the -12 example:

Little endian, in memory, would be:

000000: F4
000001: FF

Big endian, in memory, would be:

000000: FF
000001: F4

Little endian is basically reversing the byte order for a multi byte value

1111 1111 1111 0100 is a 2 byte value where 1111 1111 is the first byte and 1111 0100 is the second byte. In little endian, the second byte (or least significant byte) is read in first so the final representation is 1111 0100 1111 1111