on.
There are several versions of this code designed for different purposes, and they still hold meetings today to work out agreements on various esoteric details of things. But we don’t need to concern ourselves with all that to see how a computer works. The basic code they came up with is still in use today, and I don’t know of any reason why it would ever need to be changed.
The code has a name, it is the: American Standard Code for Information Interchange. This is usually abbreviated to ASCII, pronounced “aass-key.” We don’t need to print the whole code here, but here’s a sample. These are 20 of the codes that they came up with, the first 10 letters of the alphabet in uppercase and lowercase:
PART OF ASCII CODE TABLE
A
0100 0001
a
0110 0001
B
0100 0010
b
0110 0010
C
0100 0011
c
0110 0011
D
0100 0100
d
0110 0100
E
0100 0101
e
0110 0101
F
0100 0110
f
0110 0110
G
0100 0111
g
0110 0111
H
0100 1000
h
0110 1000
I
0100 1001
I
0110 1001
J
0100 1010
j
0110 1010
Each code is unique. It’s interesting to note the way that they arranged the codes so that the codes for uppercase and lowercase of the same letter use the same code except for one bit. The third bit from the left is off for all uppercase letters, and on for all lowercase letters.
If you wanted to put a message on your computer screen that said “Hello Joe” you would need nine bytes. The first byte would have the code for uppercase “H”, the second byte would have the code for lowercase “e”, the third and fourth bytes would have the code for lowercase “l”, the fifth byte would have the code for lowercase “o”, the sixth byte would have the code for a blank space, and bytes seven, eight and nine would contain the codes for “J”, “o” and “e.”
Notice that there is even a code for a blank space (it is 0010 0000 by the way.) You may wonder why there needs to be a code for a blank space, but that just goes to show you how dumb computers are. They don’t really contain sentences or words, there are just a number of bytes set with the codes from the ASCII code table that represent the individual symbols that we use in written language. And one of those “symbols,” is the lack of any symbol, called a space, that we use to separate words. That space tells us, the reader, that this is the end of one word and the beginning of another. The computer only has bytes, each of which can be in one of its 256 states. Which state a byte is currently in, means nothing to the computer.
So let us take a memory byte, and set the bits to 0100 0101. That means that we have put the letter E into the byte, right? Well… not really. We have set the pattern that appears next to the letter E in the ASCII code table, but there is nothing inherent in the byte that has to do with an ‘E.’ If Thomas Edison had been testing eight of his new experimental light bulbs, and had them sitting in a row on a shelf, and the first, third, fourth, fifth and seventh light bulbs had burned out, the remaining light bulbs would be a byte with this pattern. But there wasn’t a single person on the face of the Earth who would have looked at that row of bulbs and thought of the letter ‘E,’ because ASCII had not yet been invented. The letter is represented by the code. The only thing in the byte is the code.
There you have the subject of codes. A computer code is something that allows you to associate each of the 256 possible patterns in a byte with something else.
Another language note here, sometimes the word code refers to the whole list of patterns and what they represent, as in “This message was written with a secret code.” Sometimes code just refers to one of the patterns, as in