Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Special Cases and Edge Conditions

Some combinations are invalid and will generate errors:

  • Signed/unsigned with floats (floats have their own sign representation)
  • Endianness with single-byte values (there’s no byte order when there’s only one byte)
  • Non-multiple-of-8 sizes for binary type
  • UTF types with explicit sizes (the encoding determines the size)
  • Unit specifications with UTF types

The system will generally catch these at compile time if the values are known, or at runtime if they’re determined by variables. Either way, you’ll be informed of your mistake, which is better than silently producing incorrect results, which is the approach taken by languages that believe in giving programmers enough rope to hang themselves and then selling them more rope.