Remix.run Logo
adrian_b a day ago

That should have been true, but unfortunately the most popular programming languages do not have distinct data types for bit strings, non-negative numbers, integer residues a.k.a. modular numbers, binary polynomials and binary polynomial residues.

So in C and the like one uses "unsigned" regardless if bit strings or non-negative numbers are needed.

Because no explicit conversions between bit strings and numeric types are used, it is frequent to have expressions where a certain endianness of the numbers is assumed implicitly.

This is the most frequent source of bugs that manifest when a program is run on a machine with an opposite endianness than assumed in the program.