Search code examples
asciiuppercaselowercase

Why do upper case letters come before lower case letters in the ASCII table?


In one of my interview, the interviewer asked me why the upper case letters are before the lower case letters in ASCII table, I searched on google.com but found nothing, could anyone gave me the answer? Thx a lot!


Solution

  • I'm only guessing, but I imagine it's because the earliest character sets had no lowercase at all. The Baudot telegraph code was only 5 bits, and CDC mainframes natively used a 6-bit code; there was no room for lowercase. The original 1963 version of ASCII, despite already being a 7-bit code, had no lowercase either; it came with the 1967 update. Essentially, lowercase letters were considered something of a "luxury add-on", and it made sense to put them in the back half of the set.

    Of course, we can dive a little deeper and ask why that attitude exists; historically, upper case came first and was the only shape the letters had for centuries or even millennia before the idea of case distinction was invented. For most folks literate in a language that uses the Latin alphabet, uppercase is the base form; you learn it first, the archetype of each letter is the capital shape, etc.

    But it's worth noting that this ordering is nonetheless specific to ASCII, and not necessarily true of other character sets; for example, EBCDIC has the lowercase letters first. Commodore microcomputers could switch between two character sets, both based on ASCII-1963; the one with lowercase letters had them first.

    Unicode has taken its cue from ASCII (and the extended-Latin character sets based on it), so most of the alphabets that have case distinctions have the uppercase versions come first within their code blocks. But there are exceptions, and of course many alphabets don't have case distinctions at all, while others have more complicated relationships than our simple 1-to-1 mapping.