Skip to main content
CodeLint.Dev Dev Tools

ASCII Table — All 128 Characters

Every ASCII character in decimal, hex, octal and binary, including the 33 control characters.

128 characters
DecHexOctBinaryCharAbbrDescriptionHTML
00x00000000000000NULNull�
10x01000100000001SOHStart of Heading
20x02000200000010STXStart of Text
30x03000300000011ETXEnd of Text
40x04000400000100EOTEnd of Transmission
50x05000500000101ENQEnquiry
60x06000600000110ACKAcknowledge
70x07000700000111BELBell
80x08001000001000BSBackspace
90x09001100001001HTHorizontal Tab	
100x0A001200001010LFLine Feed

110x0B001300001011VTVertical Tab
120x0C001400001100FFForm Feed
130x0D001500001101CRCarriage Return
140x0E001600001110SOShift Out
150x0F001700001111SIShift In
160x10002000010000DLEData Link Escape
170x11002100010001DC1Device Control 1 (XON)
180x12002200010010DC2Device Control 2
190x13002300010011DC3Device Control 3 (XOFF)
200x14002400010100DC4Device Control 4
210x15002500010101NAKNegative Acknowledge
220x16002600010110SYNSynchronous Idle
230x17002700010111ETBEnd of Transmission Block
240x18003000011000CANCancel
250x19003100011001EMEnd of Medium
260x1A003200011010SUBSubstitute
270x1B003300011011ESCEscape
280x1C003400011100FSFile Separator
290x1D003500011101GSGroup Separator
300x1E003600011110RSRecord Separator
310x1F003700011111USUnit Separator
320x20004000100000
330x21004100100001!!
340x22004200100010"""
350x23004300100011##
360x24004400100100$$
370x25004500100101%%
380x26004600100110&&&
390x27004700100111''
400x28005000101000((
410x29005100101001))
420x2A005200101010**
430x2B005300101011++
440x2C005400101100,,
450x2D005500101101--
460x2E005600101110..
470x2F005700101111//
480x3000600011000000
490x3100610011000111
500x3200620011001022
510x3300630011001133
520x3400640011010044
530x3500650011010155
540x3600660011011066
550x3700670011011177
560x3800700011100088
570x3900710011100199
580x3A007200111010::
590x3B007300111011;;
600x3C007400111100<<&#60;
610x3D007500111101==
620x3E007600111110>>&#62;
630x3F007700111111??
640x40010001000000@@
650x41010101000001AA
660x42010201000010BB
670x43010301000011CC
680x44010401000100DD
690x45010501000101EE
700x46010601000110FF
710x47010701000111GG
720x48011001001000HH
730x49011101001001II
740x4A011201001010JJ
750x4B011301001011KK
760x4C011401001100LL
770x4D011501001101MM
780x4E011601001110NN
790x4F011701001111OO
800x50012001010000PP
810x51012101010001QQ
820x52012201010010RR
830x53012301010011SS
840x54012401010100TT
850x55012501010101UU
860x56012601010110VV
870x57012701010111WW
880x58013001011000XX
890x59013101011001YY
900x5A013201011010ZZ
910x5B013301011011[[
920x5C013401011100\\
930x5D013501011101]]
940x5E013601011110^^
950x5F013701011111__
960x60014001100000``
970x61014101100001aa
980x62014201100010bb
990x63014301100011cc
1000x64014401100100dd
1010x65014501100101ee
1020x66014601100110ff
1030x67014701100111gg
1040x68015001101000hh
1050x69015101101001ii
1060x6A015201101010jj
1070x6B015301101011kk
1080x6C015401101100ll
1090x6D015501101101mm
1100x6E015601101110nn
1110x6F015701101111oo
1120x70016001110000pp
1130x71016101110001qq
1140x72016201110010rr
1150x73016301110011ss
1160x74016401110100tt
1170x75016501110101uu
1180x76016601110110vv
1190x77016701110111ww
1200x78017001111000xx
1210x79017101111001yy
1220x7A017201111010zz
1230x7B017301111011{{
1240x7C017401111100||
1250x7D017501111101}}
1260x7E017601111110~~
1270x7F017701111111DELDelete&#127;

The layout is deliberate

ASCII's arrangement looks arbitrary and is not. The 1963 committee chose it so that common operations become single bit manipulations.

Case conversion is one bit. A is 0x41 and a is 0x61 — they differ only in bit 5. Uppercasing is c & ~0x20; lowercasing is c | 0x20. This is why case-insensitive comparison was cheap on hardware that could not afford a lookup table.

Digits are their own value. '0' is 0x30, so converting a digit character to its number is c - '0', and the low four bits of any digit character are the digit itself.

Control characters map to letters. Ctrl+A is 0x01, Ctrl+C is 0x03, Ctrl+Z is 0x1A — each control code is the letter with bits 6 and 7 cleared. That is literally what the Control key did on a teletype.

ASCII is 7 bits, giving 128 values. The eighth bit was originally a parity bit. When it was freed for data, every region invented a different set of 128 extra characters — Latin-1, Windows-1252, KOI8-R, Shift-JIS — which is the entire origin of mojibake. UTF-8 resolved it by being backwards compatible: every ASCII byte is itself in UTF-8, so ASCII text is valid UTF-8 unchanged.

Control characters still in use

Most of the 33 are historical. These you will actually meet:

DecHexNameEscapeStill used for
000NUL\0String terminator in C; a null byte in a filename is a classic injection vector
707BEL\aTerminal bell — still audible in most terminals
808BS\bBackspace
909TAB\tIndentation, TSV delimiter
100ALF\nLine ending on Unix and macOS
120CFF\fPage break in printed output
130DCR\rPaired with LF on Windows; on its own, terminal line rewriting
271BESC\eStarts every ANSI escape sequence — colours, cursor movement
1277FDELOriginally punched-out tape; now the Delete key

CR and LF together (\r\n) are the Windows line ending, inherited from teletypes where carriage return and line feed were two distinct physical actions. This is the source of most cross-platform diff noise.

About

The ASCII Table lists all 128 characters defined by the American Standard Code for Information Interchange, including 32 non-printable control characters (NUL, BEL, CR, LF, etc.) and 96 printable characters. Each entry shows the decimal, hexadecimal, octal, and binary representations — essential for low-level programming, network protocols, and debugging binary data.

How to use

  1. 1 Browse the full table or filter between Control characters and Printable characters.
  2. 2 Search for a specific character or its decimal code.
  3. 3 Click any row to copy the character or its code.
What is ASCII and how many characters does it define?
ASCII (American Standard Code for Information Interchange) defines 128 characters: 32 non-printable control characters (0–31), 95 printable characters including letters, digits, and symbols (32–126), and one DEL character (127). It was standardised in 1963 and remains the foundation of modern text encoding — every UTF-8 byte below 128 is identical to its ASCII value.
What are ASCII control characters and what do they do?
Control characters (codes 0–31) are non-printable characters that once controlled printers and terminals. Common ones still used today: NUL (0) — null terminator in C strings; TAB (9) — horizontal tab; LF (10) — line feed / newline on Unix; CR (13) — carriage return on Windows (CRLF line endings); ESC (27) — escape sequences in terminals and ANSI codes; DEL (127) — delete.
Why does ASCII use decimal 65 for the letter A?
The assignment was a deliberate design choice. Uppercase letters start at 65 (0x41), lowercase at 97 (0x61). The difference between any uppercase and its lowercase counterpart is exactly 32 — a single bit (bit 5) — making case conversion trivially cheap in hardware. Digits start at 48 (0x30), so the numeric value of digit n is its ASCII code minus 48.