Hacker News new | ask | show | jobs
by cesarb 1824 days ago
> Couldn't you make a similar argument then that when representing English text, 'A' should be 1?

It actually is!

  >>> hex(ord('A'))
  '0x41'
  >>> hex(ord('a'))
  '0x61'
The five-bit intuitive numerical mapping of the letter is prefixed with the bits 10 (for uppercase) or 11 (for lowercase). A similar thing happens with digits, where the four-bit intuitive numerical mapping of the digit is prefixed with the bits 011.

For letters, this leads to a "hole" at 0x40 and 0x60. Instead of making the letters zero-based (that is, 'A' being 0x40 and 'a' being 0x60), they decided to keep the intuitive mapping (which starts at 1), and fill the "hole" with a symbol.