wiki/2020-07-10-23-30-27.org
Gabriel Arazas d91cb3652a Add a bunch of notes
Well, I forgot to add them into the VCS.
Whoops...

On the other hand, I'm also trying to make it suitable both for org-roam
and neuron at the same time.
2020-09-06 20:43:51 +08:00

1.4 KiB
Executable File

Endianness

Tags
Computational processes

Endianness refers to how bits are read and this depends on the underlying hardware architecture. 1

For example, given the following bit, 11010, this could be read as $(1\times2^{0}) + (1\times2^{1}) + (0\times2^{2}) + (1\times2^{3}) + (0\times2^{4})$ or $11$ with the first bit being the least significant also known as little-endian. On the other hand, this could also be read as $(0\times2^{0}) + (1\times2^{1}) + (0\times2^{2}) + (1\times2^{3}) + (1\times2^{4})$ or $26$ with the last bit being the least significant which we refer to as big-endian. 2

Endianness can have subtle effects on various things — e.g., using binary data formats like FITS and HDF — like having the wrong endianness.

To know the endianness of your machine, you can simply create a test number (preferably in binary) and check for the first few digits if it's little-endian — otherwise, it is big-endian. If you have Python installed, you can simply use sys.byteorder (e.g., python -c 'import sys; print(sys.byteorder)).


1

You can enforce endianness in software but oftentimes, it is not a good idea.

2

Endianness focuses on byte order, not bit order but it is best to give the simplest example.