Character Codes in Decimal, Hex, and Octal
This page is an accessory to Multilingual Batch Programs
Characters 0 through 31 (decimal) are control codes and aren't usually considered displayable or printable, though some are useful for position control and signaling. Because of the complexity, it isn't reasonable to write a program to generate the entries for the control characters.
Control codes
- Decimal -- Hexadecimal -- Octal
- 000 00 000 NUL
- 001 01 001 SOH
- 002 02 002 STX
- 003 03 003 ETX
- 004 04 004 EOT
- 005 05 005 ENQ
- 006 06 006 ACK
- 007 07 007 BEL (beep)
- 008 08 010 BS (backspace)
- 009 09 011 HT (Tab)
- 010 0A 012 LF (line feed)
- 011 0B 013 VT
- 012 0C 014 FF
- 013 0D 015 CR (carriage return, Enter)
- 014 0E 016 SO
- 015 0F 017 SI
- 016 10 020 DLE
- 017 11 021 DC1
- 018 12 022 DC2
- 019 13 023 DC3
- 020 14 024 DC4
- 021 15 025 NAK
- 022 16 026 SYN
- 023 17 027 ETB
- 024 18 030 CAN
- 025 19 031 EM
- 026 1A 032 SUB (End of File mark in DOS)
- 027 1B 033 ESC (Esc key)
- 028 1C 034 FS (cursor right)
- 029 1D 035 GS (cursor left)
- 030 1E 036 RS (cursor up)
- 031 1F 037 US (cursor down)
It is, however worth writing a script to generate the rest of the table - it's at the bottom of the page.
- 032 20 040 " "
- 033 21 041 "!"
- 034 22 042 """
- 035 23 043 "#"
- 036 24 044 "$"
- 037 25 045 "%"
- 038 26 046 "&"
- 039 27 047 "'"
- 040 28 050 "("
- 041 29 051 ")"
- 042 2A 052 "*"
- 043 2B 053 "+"
- 044 2C 054 ","
- 045 2D 055 "-"
- 046 2E 056 "."
- 047 2F 057 "/"
- 048 30 060 "0"
- 049 31 061 "1"
- 050 32 062 "2"
- 051 33 063 "3"
- 052 34 064 "4"
- 053 35 065 "5"
- 054 36 066 "6"
- 055 37 067 "7"
- 056 38 070 "8"
- 057 39 071 "9"
- 058 3A 072 ":"
- 059 3B 073 ";"
- 060 3C 074 "<"
- 061 3D 075 "="
- 062 3E 076 ">"
- 063 3F 077 "?"
- 064 40 100 "@"
- 065 41 101 "A"
- 066 42 102 "B"
- 067 43 103 "C"
- 068 44 104 "D"
- 069 45 105 "E"
- 070 46 106 "F"
- 071 47 107 "G"
- 072 48 110 "H"
- 073 49 111 "I"
- 074 4A 112 "J"
- 075 4B 113 "K"
- 076 4C 114 "L"
- 077 4D 115 "M"
- 078 4E 116 "N"
- 079 4F 117 "O"
- 080 50 120 "P"
- 081 51 121 "Q"
- 082 52 122 "R"
- 083 53 123 "S"
- 084 54 124 "T"
- 085 55 125 "U"
- 086 56 126 "V"
- 087 57 127 "W"
- 088 58 130 "X"
- 089 59 131 "Y"
- 090 5A 132 "Z"
- 091 5B 133 "["
- 092 5C 134 "\"
- 093 5D 135 "]"
- 094 5E 136 "^"
- 095 5F 137 "_"
- 096 60 140 "`"
- 097 61 141 "a"
- 098 62 142 "b"
- 099 63 143 "c"
- 100 64 144 "d"
- 101 65 145 "e"
- 102 66 146 "f"
- 103 67 147 "g"
- 104 68 150 "h"
- 105 69 151 "i"
- 106 6A 152 "j"
- 107 6B 153 "k"
- 108 6C 154 "l"
- 109 6D 155 "m"
- 110 6E 156 "n"
- 111 6F 157 "o"
- 112 70 160 "p"
- 113 71 161 "q"
- 114 72 162 "r"
- 115 73 163 "s"
- 116 74 164 "t"
- 117 75 165 "u"
- 118 76 166 "v"
- 119 77 167 "w"
- 120 78 170 "x"
- 121 79 171 "y"
- 122 7A 172 "z"
- 123 7B 173 "{"
- 124 7C 174 "|"
- 125 7D 175 "}"
- 126 7E 176 "~"
- 127 7F 177 (non-printing or font specific)
- 128 80 200 (non-printing or font specific)
- 129 81 201 (non-printing or font specific)
- 130 82 202 (non-printing or font specific)
- 131 83 203 (non-printing or font specific)
- 132 84 204 (non-printing or font specific)
- 133 85 205 (non-printing or font specific)
- 134 86 206 (non-printing or font specific)
- 135 87 207 (non-printing or font specific)
- 136 88 210 (non-printing or font specific)
- 137 89 211 (non-printing or font specific)
- 138 8A 212 (non-printing or font specific)
- 139 8B 213 (non-printing or font specific)
- 140 8C 214 (non-printing or font specific)
- 141 8D 215 (non-printing or font specific)
- 142 8E 216 (non-printing or font specific)
- 143 8F 217 (non-printing or font specific)
- 144 90 220 (non-printing or font specific)
- 145 91 221 (non-printing or font specific)
- 146 92 222 (non-printing or font specific)
- 147 93 223 (non-printing or font specific)
- 148 94 224 (non-printing or font specific)
- 149 95 225 (non-printing or font specific)
- 150 96 226 (non-printing or font specific)
- 151 97 227 (non-printing or font specific)
- 152 98 230 (non-printing or font specific)
- 153 99 231 (non-printing or font specific)
- 154 9A 232 (non-printing or font specific)
- 155 9B 233 (non-printing or font specific)
- 156 9C 234 (non-printing or font specific)
- 157 9D 235 (non-printing or font specific)
- 158 9E 236 (non-printing or font specific)
- 159 9F 237 (non-printing or font specific)
- 160 A0 240 (non-printing or font specific)
- 161 A1 241 (non-printing or font specific)
- 162 A2 242 (non-printing or font specific)
- 163 A3 243 (non-printing or font specific)
- 164 A4 244 (non-printing or font specific)
- 165 A5 245 (non-printing or font specific)
- 166 A6 246 (non-printing or font specific)
- 167 A7 247 (non-printing or font specific)
- 168 A8 250 (non-printing or font specific)
- 169 A9 251 (non-printing or font specific)
- 170 AA 252 (non-printing or font specific)
- 171 AB 253 (non-printing or font specific)
- 172 AC 254 (non-printing or font specific)
- 173 AD 255 (non-printing or font specific)
- 174 AE 256 (non-printing or font specific)
- 175 AF 257 (non-printing or font specific)
- 176 B0 260 (non-printing or font specific)
- 177 B1 261 (non-printing or font specific)
- 178 B2 262 (non-printing or font specific)
- 179 B3 263 (non-printing or font specific)
- 180 B4 264 (non-printing or font specific)
- 181 B5 265 (non-printing or font specific)
- 182 B6 266 (non-printing or font specific)
- 183 B7 267 (non-printing or font specific)
- 184 B8 270 (non-printing or font specific)
- 185 B9 271 (non-printing or font specific)
- 186 BA 272 (non-printing or font specific)
- 187 BB 273 (non-printing or font specific)
- 188 BC 274 (non-printing or font specific)
- 189 BD 275 (non-printing or font specific)
- 190 BE 276 (non-printing or font specific)
- 191 BF 277 (non-printing or font specific)
- 192 C0 300 (non-printing or font specific)
- 193 C1 301 (non-printing or font specific)
- 194 C2 302 (non-printing or font specific)
- 195 C3 303 (non-printing or font specific)
- 196 C4 304 (non-printing or font specific)
- 197 C5 305 (non-printing or font specific)
- 198 C6 306 (non-printing or font specific)
- 199 C7 307 (non-printing or font specific)
- 200 C8 310 (non-printing or font specific)
- 201 C9 311 (non-printing or font specific)
- 202 CA 312 (non-printing or font specific)
- 203 CB 313 (non-printing or font specific)
- 204 CC 314 (non-printing or font specific)
- 205 CD 315 (non-printing or font specific)
- 206 CE 316 (non-printing or font specific)
- 207 CF 317 (non-printing or font specific)
- 208 D0 320 (non-printing or font specific)
- 209 D1 321 (non-printing or font specific)
- 210 D2 322 (non-printing or font specific)
- 211 D3 323 (non-printing or font specific)
- 212 D4 324 (non-printing or font specific)
- 213 D5 325 (non-printing or font specific)
- 214 D6 326 (non-printing or font specific)
- 215 D7 327 (non-printing or font specific)
- 216 D8 330 (non-printing or font specific)
- 217 D9 331 (non-printing or font specific)
- 218 DA 332 (non-printing or font specific)
- 219 DB 333 (non-printing or font specific)
- 220 DC 334 (non-printing or font specific)
- 221 DD 335 (non-printing or font specific)
- 222 DE 336 (non-printing or font specific)
- 223 DF 337 (non-printing or font specific)
- 224 E0 340 (non-printing or font specific)
- 225 E1 341 (non-printing or font specific)
- 226 E2 342 (non-printing or font specific)
- 227 E3 343 (non-printing or font specific)
- 228 E4 344 (non-printing or font specific)
- 229 E5 345 (non-printing or font specific)
- 230 E6 346 (non-printing or font specific)
- 231 E7 347 (non-printing or font specific)
- 232 E8 350 (non-printing or font specific)
- 233 E9 351 (non-printing or font specific)
- 234 EA 352 (non-printing or font specific)
- 235 EB 353 (non-printing or font specific)
- 236 EC 354 (non-printing or font specific)
- 237 ED 355 (non-printing or font specific)
- 238 EE 356 (non-printing or font specific)
- 239 EF 357 (non-printing or font specific)
- 240 F0 360 (non-printing or font specific)
- 241 F1 361 (non-printing or font specific)
- 242 F2 362 (non-printing or font specific)
- 243 F3 363 (non-printing or font specific)
- 244 F4 364 (non-printing or font specific)
- 245 F5 365 (non-printing or font specific)
- 246 F6 366 (non-printing or font specific)
- 247 F7 367 (non-printing or font specific)
- 248 F8 370 (non-printing or font specific)
- 249 F9 371 (non-printing or font specific)
- 250 FA 372 (non-printing or font specific)
- 251 FB 373 (non-printing or font specific)
- 252 FC 374 (non-printing or font specific)
- 253 FD 375 (non-printing or font specific)
- 254 FE 376 (non-printing or font specific)
- 255 FF 377 (non-printing or font specific)
Here's the AWK script that generated the above table for characters 32 through 255. The page would have looked better and taken fewer bytes if I had made it a table, but I prefer simplicity and universality (and brute force).
CHARCODE.AWKBEGIN{
S1 = "<DD> "
S2 = " "
S3 = " "
for( i = 32; i < 256; i++ ) {
if( i < 127 ){
printf( "%s%03d%s%02X%s%03o%s\"%c\"\n",S1, i, S2, i, S2, i, S3, i )
}
else {
printf( "%s%03d%s%02X%s%03o%s(non-printing or font specific)\n",S1, i, S2, i, S2, i, S3 )
}
}
exit
}
It should be fairly clear that S1, S2, and S3 are string variables of different lengths used to space out the items in the list, and that they replace the "%s" markers in the printf() commands, but the markers for the numbers may need a bit of discussion. "The AWK book" and much other documentation on AWK languages seem to assume that the reader is already somewhat familiar with printf() from working in C, so they provide only very dense information. For example, "The AWK book" describes the "width" parameter (the number between the "%" and the marker character) this way: "pad field to this width as needed; leading 0 pads with zeros" - you have to examine the illustration table to discover what that means. Here, "%03d" causes the the number to be substituted (i in this case) to appear as a decimal integer with exactly three characters, up to two of which may be leading zero padding, and "%02X" causes the number to appear as an unsigned hexadecimal number having exactly two characters with the letters used in hex numbers (A-F) in upper case. "x" instead of "X" would make the characters appear in lower case. "%03o" creates three digit unsigned octal numbers. "%3d", "%2X", and "%3o" would pad the numbers with leading spaces instead of zeros.
** Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001 Ted Davis - see License, included by reference. **
Input and feedback from readers are welcome. NOTE: the subject of the message must contain the word "batch" for the message to get past the spam filter.
Back to the Table of Contents page
Back to my personal links page - back to my home page