The definition of ASCII is American Standard Code for Information Interchange. Only numbers can be understood by computers. This way we can say that the ASCII code is nothing but the numerical representation of such characters as 'X' or '$' or some kind of action. ASCII is a table with the great history. However, at present the non-printing characters are used for their main purpose pretty seldom. Below you can see the ASCII character table. The description of the first 32 non-printing characters is included. Properly speaking, ASCII was created in order to use with teletypes. That is the reason why the descriptions of it sometimes may seem unclear
Imagine that your potential boss says he wants to have your Curriculum Vitae (CV) in ASCII format. The meaning of it is as following: he just wants to get a simple (plain) text without any additional formatting as tabs, bold or underscoring. It's just about the raw format that can be read by any computer. It is pretty convenient because the person can import the file into his own applications without having any troubles. ASCII text can be created with the help of Notepad.exe, or you can use MS Word and save a file as 'text only' (without formatting).
Overview History Bit width ASCII Table (Small) ASCII Table (Full)_________________ | | ___________ |o| | | ___________ | | | | ___________ | | | | ___________ | | | |_____________| | | _______ | | | | || | DD | | V| |____|_______|____|
This small site is a result of a hard-working process of one person. Server and domain have been paid with my own funds. All new feature development occasionally happens in the after-work hours only and driven by its owner's desperate passion. If you do like this site or it has helped you by any means, you can support this resource financially in any possible way you prefer. All funds will be immediately invested in the future support and new feature development. Thank you a lot and May the Force be with you!
ASCII is the abbreviation derived from American Standard Code for Information Interchange. ASCII is a character encoding standard for the electronic communication. With the help of ASCII codes different texts in computers are being represented, as well as telecommunications equipment, and some other devices. ASCII is the essential basis of the most character-encoding schemes of our times, despite the fact that lots of additional characters can be supported by them.
Encoding system conventional name is ASCII. the Internet Assigned Numbers Authority (IANA) uses the modern name US-ASCII. This way it becomes clear that this system was created in the USA. It is also clear that the basis of it are typographical symbols, that are used there in great abundance.
The telegraph code was the predecessor of ASCII, from which it was lately developed. A seven-bit teleprinter code promoted by Bell data services was the first commercial use of ASCII. October 6, 1960 is the day, when the work on the ASCII standard began. Everything started from the first meeting of the American Standards Association's (ASA) (currently the American National Standards Institute or ANSI) Х3.2 subcommittee.
In 1963 the very first edition of the standard was published. In 1967 there was a great revision of it and later on in 1986 ASCII experienced its most recent update. There were some differences from the earlier telegraph codes. The both proposed Bell code and ASCII were ordered just to provide the easier sorting (i.e., alphabetization) of lists, and added features for some other devices than the teleprinters.
ASCII was originally based on the English alphabet. It encodes 128 specified characters into seven-bit integers. The example of it you can see on the ASCII chart above. 95 of the encoded characters can be printed: these are the digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), uppercase letters (A to Z), lowercase letters (a to z) and punctuation symbols. 33 non-printing control codes which originated with Teletype machines are included in the original ASCII specification. It is worth mentioning that the most of them are currently outdated. However, some of them are still used everywhere, such as carriage return, line feed and fab codes. They included in the original ASCII specifications.
Let's see the example. The uppercase 'Z' would be represented in the ASCII encoding by binary 01011010 = hexadecimal 5A = decimal 90.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 |
NUL
000 0x00 |
SOH
001 0x01 |
STX
002 0x02 |
ETX
003 0x03 |
EOT
004 0x04 |
ENQ
005 0x05 |
ACK
006 0x06 |
BEL
007 0x07 |
BS
008 0x08 |
HT
009 0x09 |
LF
010 0x0A |
VT
011 0x0B |
FF
012 0x0C |
CR
013 0x0D |
SO
014 0x0E |
SI
015 0x0F |
1 |
DLE
016 0x10 |
DC1
017 0x11 |
DC2
018 0x12 |
DC3
019 0x13 |
DC4
020 0x14 |
NAK
021 0x15 |
SYN
022 0x16 |
ETB
023 0x17 |
CAN
024 0x18 |
EM
025 0x19 |
SUB
026 0x1A |
ESC
027 0x1B |
FS
028 0x1C |
GS
029 0x1D |
RS
030 0x1E |
US
031 0x1F |
2 |
SP
032 0x20 |
!
033 0x21 |
"
034 0x22 |
#
035 0x23 |
$
036 0x24 |
%
037 0x25 |
&
038 0x26 |
'
039 0x27 |
(
040 0x28 |
)
041 0x29 |
*
042 0x2A |
+
043 0x2B |
,
044 0x2C |
-
045 0x2D |
.
046 0x2E |
/
047 0x2F |
3 |
0
048 0x30 |
1
049 0x31 |
2
050 0x32 |
3
051 0x33 |
4
052 0x34 |
5
053 0x35 |
6
054 0x36 |
7
055 0x37 |
8
056 0x38 |
9
057 0x39 |
:
058 0x3A |
;
059 0x3B |
<
060 0x3C |
=
061 0x3D |
>
062 0x3E |
?
063 0x3F |
4 |
@
064 0x40 |
A
065 0x41 |
B
066 0x42 |
C
067 0x43 |
D
068 0x44 |
E
069 0x45 |
F
070 0x46 |
G
071 0x47 |
H
072 0x48 |
I
073 0x49 |
J
074 0x4A |
K
075 0x4B |
L
076 0x4C |
M
077 0x4D |
N
078 0x4E |
O
079 0x4F |
5 |
P
080 0x50 |
Q
081 0x51 |
R
082 0x52 |
S
083 0x53 |
T
084 0x54 |
U
085 0x55 |
V
086 0x56 |
W
087 0x57 |
X
088 0x58 |
Y
089 0x59 |
Z
090 0x5A |
[
091 0x5B |
\
092 0x5C |
]
093 0x5D |
^
094 0x5E |
_
095 0x5F |
6 |
`
096 0x60 |
a
097 0x61 |
b
098 0x62 |
c
099 0x63 |
d
100 0x64 |
e
101 0x65 |
f
102 0x66 |
g
103 0x67 |
h
104 0x68 |
i
105 0x69 |
j
106 0x6A |
k
107 0x6B |
l
108 0x6C |
m
109 0x6D |
n
110 0x6E |
o
111 0x6F |
7 |
p
112 0x70 |
q
113 0x71 |
r
114 0x72 |
s
115 0x73 |
t
116 0x74 |
u
117 0x75 |
v
118 0x76 |
w
119 0x77 |
x
120 0x78 |
y
121 0x79 |
z
122 0x7A |
{
123 0x7B |
|
124 0x7C |
}
125 0x7D |
~
126 0x7E |
DEL
127 0x7F |
Code | Info |
---|---|
000 |
NUL - Null character
dec: 000 hex: 0x00 |
001 |
SOH - Start of Heading
dec: 001 hex: 0x01 |
002 |
STX - Start of text
dec: 002 hex: 0x02 |
003 |
ETX - End of Text
dec: 003 hex: 0x03 |
004 |
EOT - End of Transmission
dec: 004 hex: 0x04 |
005 |
ENQ - Enquiry
dec: 005 hex: 0x05 |
006 |
ACK - Acknowledge
dec: 006 hex: 0x06 |
007 |
BEL - Bell, Alert
dec: 007 hex: 0x07 |
008 |
BS - Backspace
dec: 008 hex: 0x08 |
009 |
HT - Character Tabulation, Horizontal Tabulation
dec: 009 hex: 0x09 |
010 |
LF - Line feed
dec: 010 hex: 0x0A |
011 |
VT - Line Tabulation, Vertical Tabulation
dec: 011 hex: 0x0B |
012 |
FF - Form Feed
dec: 012 hex: 0x0C |
013 |
CR - Carriage Return
dec: 013 hex: 0x0D |
014 |
SO - Shift Out
dec: 014 hex: 0x0E |
015 |
SI - Shift In
dec: 015 hex: 0x0F |
016 |
DLE - Data Link Escape
dec: 016 hex: 0x10 |
017 |
DC1 - Device Control One (XON)
dec: 017 hex: 0x11 |
018 |
DC2 - Device Control Two
dec: 018 hex: 0x12 |
019 |
DC3 - Device Control Three (XOFF)
dec: 019 hex: 0x13 |
020 |
DC4 - Device Control Four
dec: 020 hex: 0x14 |
021 |
NAK - Negative Acknowledge
dec: 021 hex: 0x15 |
022 |
SYN - Synchronous Idle
dec: 022 hex: 0x16 |
023 |
ETB - End of Transmission Block
dec: 023 hex: 0x17 |
024 |
CAN - Cancel
dec: 024 hex: 0x18 |
025 |
EM - End of medium
dec: 025 hex: 0x19 |
026 |
SUB - Substitute
dec: 026 hex: 0x1A |
027 |
ESC - Escape
dec: 027 hex: 0x1B |
028 |
FS - File Separator
dec: 028 hex: 0x1C |
029 |
GS - Group Separator
dec: 029 hex: 0x1D |
030 |
RS - Record Separator
dec: 030 hex: 0x1E |
031 |
US - Unit Separator
dec: 031 hex: 0x1F |
032 |
SP - Space
dec: 032 hex: 0x20 |
033 |
! - Exclamation mark (point)
dec: 033 hex: 0x21 |
034 |
" - Quotation mark, quotes, quotemarks
dec: 034 hex: 0x22 |
035 |
# - Number sign, hash
dec: 035 hex: 0x23 |
036 |
$ - Dollar sign
dec: 036 hex: 0x24 |
037 |
% - Percent sign
dec: 037 hex: 0x25 |
038 |
& - Ampersand
dec: 038 hex: 0x26 |
039 |
' - Apostrophe
dec: 039 hex: 0x27 |
040 |
( - Left parenthesis, left round bracket
dec: 040 hex: 0x28 |
041 |
) - Right parenthesis, right round bracket
dec: 041 hex: 0x29 |
042 |
* - Asterisk
dec: 042 hex: 0x2A |
043 |
+ - Plus sign
dec: 043 hex: 0x2B |
044 |
, - Comma
dec: 044 hex: 0x2C |
045 |
- - Hyphen-minus, minus sign
dec: 045 hex: 0x2D |
046 |
. - Full stop, full point, dot
dec: 046 hex: 0x2E |
047 |
/ - Slash
dec: 047 hex: 0x2F |
048 |
0 - Zero number, zero digit
dec: 048 hex: 0x30 |
049 |
1 - One number, one digit
dec: 049 hex: 0x31 |
050 |
2 - Two number, two digit
dec: 050 hex: 0x32 |
051 |
3 - Three number, three digit
dec: 051 hex: 0x33 |
052 |
4 - Four number, four digit
dec: 052 hex: 0x34 |
053 |
5 - Five number, five digit
dec: 053 hex: 0x35 |
054 |
6 - Six number, six digit
dec: 054 hex: 0x36 |
055 |
7 - Seven number, seven digit
dec: 055 hex: 0x37 |
056 |
8 - Eight number, eight digit
dec: 056 hex: 0x38 |
057 |
9 - Nine number, nine digit
dec: 057 hex: 0x39 |
058 |
: - Colon symbol, colon sign
dec: 058 hex: 0x3A |
059 |
; - Semicolon symbol, semicolon sign
dec: 059 hex: 0x3B |
060 |
< - Less-than sign
dec: 060 hex: 0x3C |
061 |
= - Equal symbol, equal sign
dec: 061 hex: 0x3D |
062 |
> - Greater-than sign
dec: 062 hex: 0x3E |
063 |
? - Question mark (point)
dec: 063 hex: 0x3F |
064 |
@ - At sign, at symbol, commercial at
dec: 064 hex: 0x40 |
065 |
A - Letter A (upper, uppercase) ISO basic Latin alphabet
dec: 065 hex: 0x41 |
066 |
B - Letter B (upper, uppercase) ISO basic Latin alphabet
dec: 066 hex: 0x42 |
067 |
C - Letter C (upper, uppercase) ISO basic Latin alphabet
dec: 067 hex: 0x43 |
068 |
D - Letter D (upper, uppercase) ISO basic Latin alphabet
dec: 068 hex: 0x44 |
069 |
E - Letter E (upper, uppercase) ISO basic Latin alphabet
dec: 069 hex: 0x45 |
070 |
F - Letter F (upper, uppercase) ISO basic Latin alphabet
dec: 070 hex: 0x46 |
071 |
G - Letter G (upper, uppercase) ISO basic Latin alphabet
dec: 071 hex: 0x47 |
072 |
H - Letter H (upper, uppercase) ISO basic Latin alphabet
dec: 072 hex: 0x48 |
073 |
I - Letter I (upper, uppercase) ISO basic Latin alphabet
dec: 073 hex: 0x49 |
074 |
J - Letter J (upper, uppercase) ISO basic Latin alphabet
dec: 074 hex: 0x4A |
075 |
K - Letter K (upper, uppercase) ISO basic Latin alphabet
dec: 075 hex: 0x4B |
076 |
L - Letter L (upper, uppercase) ISO basic Latin alphabet
dec: 076 hex: 0x4C |
077 |
M - Letter M (upper, uppercase) ISO basic Latin alphabet
dec: 077 hex: 0x4D |
078 |
N - Letter N (upper, uppercase) ISO basic Latin alphabet
dec: 078 hex: 0x4E |
079 |
O - Letter O (upper, uppercase) ISO basic Latin alphabet
dec: 079 hex: 0x4F |
080 |
P - Letter P (upper, uppercase) ISO basic Latin alphabet
dec: 080 hex: 0x50 |
081 |
Q - Letter Q (upper, uppercase) ISO basic Latin alphabet
dec: 081 hex: 0x51 |
082 |
R - Letter R (upper, uppercase) ISO basic Latin alphabet
dec: 082 hex: 0x52 |
083 |
S - Letter S (upper, uppercase) ISO basic Latin alphabet
dec: 083 hex: 0x53 |
084 |
T - Letter T (upper, uppercase) ISO basic Latin alphabet
dec: 084 hex: 0x54 |
085 |
U - Letter U (upper, uppercase) ISO basic Latin alphabet
dec: 085 hex: 0x55 |
086 |
V - Letter V (upper, uppercase) ISO basic Latin alphabet
dec: 086 hex: 0x56 |
087 |
W - Letter W (upper, uppercase) ISO basic Latin alphabet
dec: 087 hex: 0x57 |
088 |
X - Letter X (upper, uppercase) ISO basic Latin alphabet
dec: 088 hex: 0x58 |
089 |
Y - Letter Y (upper, uppercase) ISO basic Latin alphabet
dec: 089 hex: 0x59 |
090 |
Z - Letter Z (upper, uppercase) ISO basic Latin alphabet
dec: 090 hex: 0x5A |
091 |
[ - Left square bracket
dec: 091 hex: 0x5B |
092 |
\ - Backslash
dec: 092 hex: 0x5C |
093 |
] - Right square bracket
dec: 093 hex: 0x5D |
094 |
^ - Caret
dec: 094 hex: 0x5E |
095 |
_ - Underscore
dec: 095 hex: 0x5F |
096 |
` - Grave accent
dec: 096 hex: 0x60 |
097 |
a - Letter a (lower, lowercase) ISO basic Latin alphabet
dec: 097 hex: 0x61 |
098 |
b - Letter b (lower, lowercase) ISO basic Latin alphabet
dec: 098 hex: 0x62 |
099 |
c - Letter c (lower, lowercase) ISO basic Latin alphabet
dec: 099 hex: 0x63 |
100 |
d - Letter d (lower, lowercase) ISO basic Latin alphabet
dec: 100 hex: 0x64 |
101 |
e - Letter e (lower, lowercase) ISO basic Latin alphabet
dec: 101 hex: 0x65 |
102 |
f - Letter f (lower, lowercase) ISO basic Latin alphabet
dec: 102 hex: 0x66 |
103 |
g - Letter g (lower, lowercase) ISO basic Latin alphabet
dec: 103 hex: 0x67 |
104 |
h - Letter h (lower, lowercase) ISO basic Latin alphabet
dec: 104 hex: 0x68 |
105 |
i - Letter i (lower, lowercase) ISO basic Latin alphabet
dec: 105 hex: 0x69 |
106 |
j - Letter j (lower, lowercase) ISO basic Latin alphabet
dec: 106 hex: 0x6A |
107 |
k - Letter k (lower, lowercase) ISO basic Latin alphabet
dec: 107 hex: 0x6B |
108 |
l - Letter l (lower, lowercase) ISO basic Latin alphabet
dec: 108 hex: 0x6C |
109 |
m - Letter m (lower, lowercase) ISO basic Latin alphabet
dec: 109 hex: 0x6D |
110 |
n - Letter n (lower, lowercase) ISO basic Latin alphabet
dec: 110 hex: 0x6E |
111 |
o - Letter o (lower, lowercase) ISO basic Latin alphabet
dec: 111 hex: 0x6F |
112 |
p - Letter p (lower, lowercase) ISO basic Latin alphabet
dec: 112 hex: 0x70 |
113 |
q - Letter q (lower, lowercase) ISO basic Latin alphabet
dec: 113 hex: 0x71 |
114 |
r - Letter r (lower, lowercase) ISO basic Latin alphabet
dec: 114 hex: 0x72 |
115 |
s - Letter s (lower, lowercase) ISO basic Latin alphabet
dec: 115 hex: 0x73 |
116 |
t - Letter t (lower, lowercase) ISO basic Latin alphabet
dec: 116 hex: 0x74 |
117 |
u - Letter u (lower, lowercase) ISO basic Latin alphabet
dec: 117 hex: 0x75 |
118 |
v - Letter v (lower, lowercase) ISO basic Latin alphabet
dec: 118 hex: 0x76 |
119 |
w - Letter w (lower, lowercase) ISO basic Latin alphabet
dec: 119 hex: 0x77 |
120 |
x - Letter x (lower, lowercase) ISO basic Latin alphabet
dec: 120 hex: 0x78 |
121 |
y - Letter y (lower, lowercase) ISO basic Latin alphabet
dec: 121 hex: 0x79 |
122 |
z - Letter z (lower, lowercase) ISO basic Latin alphabet
dec: 122 hex: 0x7A |
123 |
{ - Left curly bracket
dec: 123 hex: 0x7B |
124 |
| - Vertical bar
dec: 124 hex: 0x7C |
125 |
} - Right curly bracket
dec: 125 hex: 0x7D |
126 |
~ - Tilde symbol, tilde sign
dec: 126 hex: 0x7E |
127 |
DEL - Delete character
dec: 127 hex: 0x7F |
A committee of the American Standards Association (ASA) was responsible for the creation of the American Standard Code for Information Interchange (ASCII). ASA is also called the X3 committee, by its X3.2 (later X3L2) subcommittee, and later on by the working group of that subcommittee X3.2.4 (now INCITS). The managed to become ASA the United States of America Standards Institute (USASI) and finally the American National Standards Institute (ANSI).
ASCII was published as ASA X3.4-1963 with some other unique characters and control codes filled in. What's more, 28 code positions were left without any particular meaning. They were reserved for the later standardization, and one unassigned control code. At that time specialists couldn't firmly decide whether there should be more control characters rather than the lowercase alphabet. However, this state of uncertainty did not last long: during May 1963 the CCITT Working Party on the New Telegraph Alphabet suggested to assign lowercase characters to sticks 6 and 7. During October the International Organization for Standardization TC 97 SC 2 gave its vote for the incorporation the change into its draft standard. At May 1963 meeting the vote for the change approval to ASCII was given by the X3.2.4 task group. Because of the lowercase letters location in sticks 6 and 7, the characters differed in bit pattern from the upper case by a single bit. This simplified case-insensitive character matching and the construction of keyboards and printers in general.
Some other changes were made by the X3 committee. Among them are some other new characters (the brace and vertical bar characters), renaming some control characters (SOM became start of header (SOH)) and moving or removing others (RU was removed). Later on ASCII was updated as USAS X3.4-1967, then USAS X3.4-1968, ANSI X3.4-1977, and finally, ANSI X3.4-1986.
Revisions of the ASCII standard:
The way how ASCII should be transmitted (least significant bit first), and how it should be recorded on perforated tape was also considered by the X3 committee in the X3.15 standard. They proposed a 9-track standard for magnetic tape, and, what's more, tried to deal with some punched card formats.
ASCII was created based on the earlier teleprinter encoding systems by the X3.2 committee. ASCII can be compared to some other character encodings: it specifies a correspondence between digital bit patterns and character symbols (i.e. graphemes and control characters). This way digital devices can communicate with each other, process, save, and communicate character-oriented information, written language, for example. Before the development of ASCII, the encodings in service included 26 alphabetic characters, 10 numerical digits, and from 11 to 25 unique graphic symbols. International Telegraph Alphabet No. 2 (ITA2) standard of 1924 FIELDATA (1956), and early EBCDIC (1963), more than 64 codes were required for ASCII in order to include all these things and control characters compatible with the International Telegraph and Telephone Consultative Committee (CCITT, from French).
In its turn, the base of the ITA2 was the 5-bit telegraph code Emile Baudot. It was invented in 1870 and patented in 1874.
The possibility of a shift function (like in ITA2) was hotly discussed by the specialists. More than 64 codes could be allowed to be represented by a 6-bit code. In a shifted code, the choices between options for the following character codes are determined by some character codes. The compact encoding is possible here. However, the data transmission becomes not so reliable, because a transmitting shift code error usually makes a great part of the transmission totally unreadable. Taking into consideration these facts, the standards committee decided no to add up the shift function, so ASCII required at least a 7-bit code.
An 8-bit code was proposed by the committee, since eight bits (octets) would allow two four-bit patterns to productively encode two digits with binary-coded decimal. Nevertheless, all data transmission would be obliged to send eight bits when seven could be pretty enough. The committee decided to use a 7-bit code in order to minimize costs related to data transmission. Taking into consideration that the perforated tape of that time could record eight bits in one position, it also allowed for a parity bit for error checking, if it was needed. Eight-bit machines (with octets as the native data type) that did not use parity checking typically set the eighth bit to 0. The high bit was used some printers in order to enable Italics printing.