| ▲ | 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. | ||