---
title: Strings for ACM ICPC
---

## Character Codes

Character codes are mappings between numbers and symbols which make up a particular alphabet.

The *American Standard Code for Information Interchange* (ASCII) is a single-byte character code where $2^7 = 128$ characters are specified.

Symbol assignments were not done at random. Several interesting properties of the design make programming tasks easier:

- All non-printable characters have either the first three bits as zero or all seven lowest bits as one. This makes it easy to eliminate them before displaying junk.
- Both the upper and lower case letters and the numerical digits appear sequentially
- We can get the numeric order of a letter by subtracting the first letter
- We can convert a character from uppercase to lowercase by $Letter - "A" + "a"$ 

