Hammer Meet Nail
Ctrl+K

ASCII Table

Every code from 0 to 127, and what each control character does

Control characters

DecHexOctBinAbbrCaretEscapeName and what it does
0000000000000NUL^@\0null Nothing at all. Pads data, and ends a string in C.
1010010000001SOH^Astart of heading Began a message header on early data links.
2020020000010STX^Bstart of text Ended a header and began the message body.
3030030000011ETX^Cend of text Ended the body. Ctrl-C sends it, and terminals make it an interrupt.
4040040000100EOT^Dend of transmission Ended a transmission. Ctrl-D at the start of a terminal line ends input.
5050050000101ENQ^Eenquiry Asked the far end to identify itself or report its status.
6060060000110ACK^Facknowledge Answered yes: received correctly.
7070070000111BEL^G\abell Rings the terminal bell, or flashes the screen.
8080100001000BS^H\bbackspace Moves the cursor back one column; whether it erases is up to the terminal.
9090110001001HT^I\thorizontal tab Moves to the next tab stop.
100A0120001010LF^J\nline feed Moves down one line. On Unix it ends a line by itself.
110B0130001011VT^K\vvertical tab Moves down to the next vertical tab stop; rarely honoured.
120C0140001100FF^L\fform feed Starts a new page on a printer. Ctrl-L clears many terminal screens.
130D0150001101CR^M\rcarriage return Moves to the start of the line. Windows ends a line with CR LF.
140E0160001110SO^Nshift out Switched to an alternate character set.
150F0170001111SI^Oshift in Switched back to the standard character set.
16100200010000DLE^Pdata link escape Marked the characters after it as data, not control.
17110210010001DC1^Qdevice control 1 XON: resume sending. Ctrl-Q unfreezes a terminal.
18120220010010DC2^Rdevice control 2 Left to the device to define.
19130230010011DC3^Sdevice control 3 XOFF: pause sending. Ctrl-S freezes a terminal.
20140240010100DC4^Tdevice control 4 Left to the device to define.
21150250010101NAK^Unegative acknowledge Answered no: received with errors.
22160260010110SYN^Vsynchronous idle Kept a synchronous link in step while idle.
23170270010111ETB^Wend of transmission block Ended one block of a transmission.
24180300011000CAN^Xcancel Marked the data before it as in error, to be ignored.
25190310011001EM^Yend of medium Marked the physical end of a tape or card.
261A0320011010SUB^Zsubstitute Stood in for a garbled character. Ctrl-Z ends input on Windows and suspends a process on Unix.
271B0330011011ESC^[\enot ISO Cescape Starts an escape sequence: what follows is a command, as in terminal colors.
281C0340011100FS^\file separator Separated files, the largest unit of data.
291D0350011101GS^]group separator Separated groups within a file.
301E0360011110RS^^record separator Separated records within a group.
311F0370011111US^_unit separator Separated units within a record, the smallest field.
1277F1771111111DEL^?delete Erased a character on paper tape by punching every hole. Many terminals send it for the Backspace key.

Printable characters

CharDecHexOctBin
space32200400100000
!33210410100001
"34220420100010
#35230430100011
$36240440100100
%37250450100101
&38260460100110
'39270470100111
(40280500101000
)41290510101001
*422A0520101010
+432B0530101011
,442C0540101100
-452D0550101101
.462E0560101110
/472F0570101111
048300600110000
149310610110001
250320620110010
351330630110011
452340640110100
553350650110101
654360660110110
755370670110111
856380700111000
957390710111001
:583A0720111010
;593B0730111011
<603C0740111100
=613D0750111101
>623E0760111110
?633F0770111111
CharDecHexOctBin
@64401001000000
A65411011000001
B66421021000010
C67431031000011
D68441041000100
E69451051000101
F70461061000110
G71471071000111
H72481101001000
I73491111001001
J744A1121001010
K754B1131001011
L764C1141001100
M774D1151001101
N784E1161001110
O794F1171001111
P80501201010000
Q81511211010001
R82521221010010
S83531231010011
T84541241010100
U85551251010101
V86561261010110
W87571271010111
X88581301011000
Y89591311011001
Z905A1321011010
[915B1331011011
\925C1341011100
]935D1351011101
^945E1361011110
_955F1371011111
CharDecHexOctBin
`96601401100000
a97611411100001
b98621421100010
c99631431100011
d100641441100100
e101651451100101
f102661461100110
g103671471100111
h104681501101000
i105691511101001
j1066A1521101010
k1076B1531101011
l1086C1541101100
m1096D1551101101
n1106E1561101110
o1116F1571101111
p112701601110000
q113711611110001
r114721621110010
s115731631110011
t116741641110100
u117751651110101
v118761661110110
w119771671110111
x120781701111000
y121791711111001
z1227A1721111010
{1237B1731111011
|1247C1741111100
}1257D1751111101
~1267E1761111110

Codes and names as ANSI X3.4-1986 defines them. Escapes as C writes them; \e is not ISO C, but GCC, Clang and shells read it. Caret notation is how terminals echo a control key: the code with bit 6 flipped. ASCII stops at 127 — above it there is no single answer, since Latin-1, Windows-1252 and a dozen code pages each assign 128–255 differently.