This document describes how to interpret ASCII codes used for computer processing and display. For codes used in Web pages see link at bottom.
ASCII Characters For Computers
(Pronounced "ask-ee")
ASCII = American Standard Code for Information Interchange
Now that you ASCII, its ANSI

ASCII is old fashioned. It refers to a coding scheme of 7 bits used in computers before the advent of the IBM System 360 (S/360) in the early 1960's. With the S/360 IBM introduced a new 8-bit coding scheme called EBCDIIC (pronounced eb-cee-dic), an acronym for Extended Binary Coded Decimal Information Interchange Code.

Computers are dumber than dirt. The only information (characters and numbers) computers can recognize (understand) consist of exactly two digits: 0 (zero) and 1 (one). In computers, 0s and 1s are called "bits." To represent the alphabet (a-z & A-Z), numbers (0-9) and special characters (i.e., "@,#,$" etc.) groups of bits are used. A group of bits is called a "byte" (pronounced "bite") and is stored, computed and processed as a group of eight bits. Computers require a separate group of bits for each character, or byte. It's a great help to think of a byte as a computer memory storage space even though each logical space really consist of 8 physical spaces.

The value for each byte can range from a low of "00000000" to a high of "11111111." Each byte is considered logically as a single unit of data and is called a [pick one], an ANSI character, an ASCII character or a byte. Within the ANSI - ASCII - byte scheme, one logical computer memory space can hold enough permutations for a single byte to have any value from "0" to "255." The range is enough to represent any letter of the alphabet in either upper and lower case, any of the ten decimal numbers 0-9, or any special character, i.e., -- ~!@#$%^&*", etc. [0-255 is also enough range to represent the alphabets of all other languages: Chinese, Russian, Greek, etc.]

To decipher a value (0-255) stored in a single byte/space, the representation can be displayed or printed in different forms. [REMEMBER: ALL information is STORED in the form of "0"s and "1"s.] Common formats for display and print of recognizable, eye readable information are DECIMAL, HEXADECIMAL (HEX), BINARY and OCTAL. OCTAL is rarely used so I'll just ignore it from here forward.

[NOTE: pcDon says it "in other words." See below.]

DECIMAL, the base-ten system we use:

0,1,2,3,4,5,6,7,8,9 for numbers, and
a or A; b or B; c or C; etc., for our alphabet, and
!,@,#,$,%, etc., for special characters.
[In our common DECIMAL arithmetic system, 9 plus 1 = 10 or ten.]

HEXADECIMAL: Base-16 system used in computers. Rendered eye readable by breaking each byte into two four-bit groups and using decimal digits and alpha characters to display the results.

Single HEX values are displayed as
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f (or A-F) upper/lower case makes no difference.
The eight-bit byte scheme permits a single byte to hold values from "0" to "255" but that one position requires TWO HEX characters for eye readable display. Ergo, to display on a computer monitor or printer, a single position of computer memory requires the HEX characters "00" thru "ff".
[In HEX systems, f plus 1 = 10 or sixteen, written as (0x)10, or (HEX)16.]

BINARY: Base-two, 0 and 1. In the binary system:

1 plus 1 = (2)10, or (binary)10 which is decimal 2.
(2)10 plus 1 = (2)11 or (binary)11, which is decimal 3.
(2)11 plus 1 = (2)100 or (binary)100, which is decimal 4.
(2)100 plus 1 = (2)101 or (binary)101, which is decimal 5.
Read from right to left, doubling values for each position.

In Standard ASCII code there are 128 characters (0 thru 127), of which, the first 32 "characters" are "hidden" control characters (non-visible on a computer monitor and non-printable EXCEPT in HEX), and the other 96 are representable characters that we are accustomed to seeing. These were the true ASCII codes before the geeks started mis-naming the scheme.

Here's what the 128 characters look like to the human eye (green characters are not visible but are included FYI):

Standard ASCII
* 0 1 2 3 4 5 6 7 8 9 A B C D E F
2   ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~ 

* The table is DECIMAL (i.e., characters appear normally) but is organized to be read in hexadecimal: Row numbers [down] represent the first half of a HEX value and column numbers [across] represent the second half of a HEX value. For example, the uppercase A is located at row 4 and column 1. Therefore, an upper case A in HEX would be 41. Said another way, if I say "the value is HEX 41" I'm saying the value is uppercase A. But the proper way to write HEX 41 is: 0x41 (65), where "0x" means it's a HEX number, 41 is the row and column [value], and (65) means it is the 65th ASCII character in the 0-127 list. -- BTW: Lowercase a in HEX is 0x61(97).

FYI, 'control character' means such things as 0x00(0) = NUL (NULL) which is useful to computers and programmers but humans have no need to know, OR 0x04(4) = EOT which is 'End of Transmission' code in telecommunications, OR 0x0d(13) = CR which is 'Carriage Return'. BTW: Be carefull not to confuse 0x0c(12) = FF in the table -- which means 'Form Feed' -- with HEX value "255" (0xff) which was discussed above and is illustrated below.

In standard everyday DECIMAL base-ten system: 0 thru 9 is the standard for numbers. Ergo, 9 plus 1 = 10 or ten. -- In HEXADECIMAL the base is 16: 0-9,A-F. The eyeball representation is 0-9, a, b, c, d, e, f [upper-lower case makes no difference]. Ergo, in HEX, F or f plus 1 produces a zero in the units position with a 1 carry to the left. Result: 0x10 or sixteen, meaning its a hex number (0x) with the right-most position value of "0" and the position to the left value "16".

Here's a quick converter to help get from one value to another.

Interactive Decimal-Hexadecimal-Octal-ASCII converter.
(Works for: MSIE 4+ -- FireFox 1.0+ -- Netscape 3+)


Enter a value in any field or enter a keyboard
character in the ASCII field and press the TAB key.

[OCTAL is a base-eight code system which I am ignoring. OCTAL was used by RCA when that company made commercial computers but nobody else went along so its no longer in vogue.]

In addition to the 128 ASCII codes above, there are another 128 codes that are known as Extended ANSI but some folks call them Extended ASCII. Whatever. The scheme is platform-dependent so there is more than one Extended ANSI / ASCII character set.

EBCDIIC coding scheme:
When I was a young man computers were designed to "steal" one bit from the eight bit scheme for use as a "parity bit" to check data integrity during processing. Those were the olden days. The limited number of bits in each byte restricted the expansion of the coding scheme. In the early 1960s, the IBM System 360 introduced a new "parity bit" to the mass commercial market and the S/360 proved so popular that others had to go along. With modern computers, makers saw the need for more codes as well as for the additional bit. A 9-bit block/group freed up that "stolen" bit and computer makers were able to assign useful values to all eight bit combinations. IBM originally called the new scheme EBCDIIC but more recently the jargon for the new scheme has evolved to "Extended ANSI / ASCII."
[ANSI = American National Standards Institute.] [More on EBCDIIC »]

Standard ANSI (or ASCII. Repeat of table above.)
  0 1 2 3 4 5 6 7 8 9 A B C D E F
2   ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~ 
Extended ANSI for IBM, Windows, and most Unix platforms
8  ƒ ˆ Š Œ  Ž 
9  ˜ š œ  ž Ÿ
A   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬   ® ¯
B ° ± ² ³ ´ µ · ¸ ¹ º » ¼ ½ ¾ ¿
D Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
E à á â ã ä å æ ç è é ê ë ì í î ï
F ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

NOTE: The symbol  or  is displayed on moniters and printers when the code in a byte can't be translated into a standard symbol. Programmers call the results "unprintable characters." To see the actual bit configuration of such bytes, programmers rely on "hex dumps" or displays and printouts in hexadecimal format. As promised above, notice that HEX value 255 (ff or FF) as shown in row F, column F of Extended ASCII. Its really unprintable (prints as a duplicate of other characters, i.e., 9f) in a single character space print out. Programmers often call "ff"'s null characters. Also note, in print outs and displays on monitors, values using a single space where HEX characters are needed will change with different ISO character sets.

For platforms other than IBM, Windows, and most Unix, you need to search the Net to find the applicable Extended ASCII codes.

-- Codes for numbers, alphabet and special charaters >> as INPUT via Web pages.
-- Computer Code Lookup Table >>
-- More on EBCDIIC >>

In other words... from pcDon:
Digits, Bits & Pixels

What does "digit" mean, as in "digital photography? Well, "numbers" are often referred to as "digits" and computers only understand two digits: "zero" (0) and "one" (1). Everything that goes into a computer is eventually broken down into a "binary code" which consists of nothing but zeros and ones.

The letter A, for instance, is represented by 01000001, while 01100001 is the binary code for a lower case a. The math that goes into these mysterious algorithms is beyond the scope of this tutorial, but looking up "binary code" via a search engine will lead to all kinds of information on the subject.

These ones and zeros are known collectively as "bits." However, the word "bit" is also a name for the tiny colored squares that comprise a "bitmap" image, ie: "bits" that have been "mapped" on a computer screen to give the appearance of continuous tone color gradients.

The word "bit" is also used to help describe certain types of digital technology, and almost always appears as a number which is a successive doubling of "1" - ie: 2, 4, 8, 16, 32, 64-bit operating system, etc. It's another term which is seldom needed in a beginning PC user's list of helpful phrases.

Copyright © 2003-2011, Concord Learning Systems, Concord, NC.
All rights reserved.