# Endianness

Date: 2020-07-10 23:30:27 +08:00Date modified: 2021-05-19 17:37:14 +08:00

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

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.

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)`).

## Backlinks

- Reproducible research: methodological principles for transparent science