Online ASCII Table

Hello, world!

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| |____|_______|____|

>>> In the name of science, computers and retrogames. Support us today. 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 Overview

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.

ASCII Table

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

dec: 000

hex: 0x00 001 SOH

dec: 001

hex: 0x01 002 STX

dec: 002

hex: 0x02 003 ETX

dec: 003

hex: 0x03 004 EOT

dec: 004

hex: 0x04 005 ENQ

dec: 005

hex: 0x05 006 ACK

dec: 006

hex: 0x06 007 BEL

dec: 007

hex: 0x07 008 BS

dec: 008

hex: 0x08 009 HT

dec: 009

hex: 0x09 010 LF

dec: 010

hex: 0x0A 011 VT

dec: 011

hex: 0x0B 012 FF

dec: 012

hex: 0x0C 013 CR

dec: 013

hex: 0x0D 014 SO

dec: 014

hex: 0x0E 015 SI

dec: 015

hex: 0x0F 016 DLE

dec: 016

hex: 0x10 017 DC1

dec: 017

hex: 0x11 018 DC2

dec: 018

hex: 0x12 019 DC3

dec: 019

hex: 0x13 020 DC4

dec: 020

hex: 0x14 021 NAK

dec: 021

hex: 0x15 022 SYN

dec: 022

hex: 0x16 023 ETB

dec: 023

hex: 0x17 024 CAN

dec: 024

hex: 0x18 025 EM

dec: 025

hex: 0x19 026 SUB

dec: 026

hex: 0x1A 027 ESC

dec: 027

hex: 0x1B 028 FS

dec: 028

hex: 0x1C 029 GS

dec: 029

hex: 0x1D 030 RS

dec: 030

hex: 0x1E 031 US

dec: 031

hex: 0x1F 032 SP

dec: 032

hex: 0x20 033 !

dec: 033

hex: 0x21 034 "

dec: 034

hex: 0x22 035 #

dec: 035

hex: 0x23 036 $

dec: 036

hex: 0x24 037 %

dec: 037

hex: 0x25 038 &

dec: 038

hex: 0x26 039 '

dec: 039

hex: 0x27 040 (

dec: 040

hex: 0x28 041 )

dec: 041

hex: 0x29 042 *

dec: 042

hex: 0x2A 043 +

dec: 043

hex: 0x2B 044 ,

dec: 044

hex: 0x2C 045 -

dec: 045

hex: 0x2D 046 .

dec: 046

hex: 0x2E 047 /

dec: 047

hex: 0x2F 048 0

dec: 048

hex: 0x30 049 1

dec: 049

hex: 0x31 050 2

dec: 050

hex: 0x32 051 3

dec: 051

hex: 0x33 052 4

dec: 052

hex: 0x34 053 5

dec: 053

hex: 0x35 054 6

dec: 054

hex: 0x36 055 7

dec: 055

hex: 0x37 056 8

dec: 056

hex: 0x38 057 9

dec: 057

hex: 0x39 058 :

dec: 058

hex: 0x3A 059 ;

dec: 059

hex: 0x3B 060 <

dec: 060

hex: 0x3C 061 =

dec: 061

hex: 0x3D 062 >

dec: 062

hex: 0x3E 063 ?

dec: 063

hex: 0x3F 064 @

dec: 064

hex: 0x40 065 A

dec: 065

hex: 0x41 066 B

dec: 066

hex: 0x42 067 C

dec: 067

hex: 0x43 068 D

dec: 068

hex: 0x44 069 E

dec: 069

hex: 0x45 070 F

dec: 070

hex: 0x46 071 G

dec: 071

hex: 0x47 072 H

dec: 072

hex: 0x48 073 I

dec: 073

hex: 0x49 074 J

dec: 074

hex: 0x4A 075 K

dec: 075

hex: 0x4B 076 L

dec: 076

hex: 0x4C 077 M

dec: 077

hex: 0x4D 078 N

dec: 078

hex: 0x4E 079 O

dec: 079

hex: 0x4F 080 P

dec: 080

hex: 0x50 081 Q

dec: 081

hex: 0x51 082 R

dec: 082

hex: 0x52 083 S

dec: 083

hex: 0x53 084 T

dec: 084

hex: 0x54 085 U

dec: 085

hex: 0x55 086 V

dec: 086

hex: 0x56 087 W

dec: 087

hex: 0x57 088 X

dec: 088

hex: 0x58 089 Y

dec: 089

hex: 0x59 090 Z

dec: 090

hex: 0x5A 091 [

dec: 091

hex: 0x5B 092 \

dec: 092

hex: 0x5C 093 ]

dec: 093

hex: 0x5D 094 ^

dec: 094

hex: 0x5E 095 _

dec: 095

hex: 0x5F 096 `

dec: 096

hex: 0x60 097 a

dec: 097

hex: 0x61 098 b

dec: 098

hex: 0x62 099 c

dec: 099

hex: 0x63 100 d

dec: 100

hex: 0x64 101 e

dec: 101

hex: 0x65 102 f

dec: 102

hex: 0x66 103 g

dec: 103

hex: 0x67 104 h

dec: 104

hex: 0x68 105 i

dec: 105

hex: 0x69 106 j

dec: 106

hex: 0x6A 107 k

dec: 107

hex: 0x6B 108 l

dec: 108

hex: 0x6C 109 m

dec: 109

hex: 0x6D 110 n

dec: 110

hex: 0x6E 111 o

dec: 111

hex: 0x6F 112 p

dec: 112

hex: 0x70 113 q

dec: 113

hex: 0x71 114 r

dec: 114

hex: 0x72 115 s

dec: 115

hex: 0x73 116 t

dec: 116

hex: 0x74 117 u

dec: 117

hex: 0x75 118 v

dec: 118

hex: 0x76 119 w

dec: 119

hex: 0x77 120 x

dec: 120

hex: 0x78 121 y

dec: 121

hex: 0x79 122 z

dec: 122

hex: 0x7A 123 {

dec: 123

hex: 0x7B 124 |

dec: 124

hex: 0x7C 125 }

dec: 125

hex: 0x7D 126 ~

dec: 126

hex: 0x7E 127 DEL

dec: 127

hex: 0x7F

ASCII History

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:

ASA X3.4-1963

ASA X3.4-1965 (approved, but not published, however used by IBM 2260 & 2265 Display Stations and IBM 2848 Display Control)

USAS X3.4-1967

USAS X3.4-1968

ANSI X3.4-1977 ANSI X3.4-1986

ANSI X3.4-1986 (R1992)

ANSI X3.4-1986 (R1997)

ANSI INCITS 4-1986 (R2002)

ANSI INCITS 4-1986 (R2007)

ANSI INCITS 4-1986 (R2012)

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 Bit width

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.