
什么是 ASCII
ASCII 将数字 0–127 映射到字符:0–31 和 127 是控制字符,32–126 是可打印字符。每个编码占用 7 位,这就是为什么将文本转换为二进制时每个字符产生 7 位或 8 位组。

可打印字符 (32–126)
| Dec | Hex | Char | Dec | Hex | Char | Dec | Hex | Char |
|---|---|---|---|---|---|---|---|---|
| 32 | 20 | (空格) | 64 | 40 | @ | 96 | 60 | ` |
| 33 | 21 | ! | 65 | 41 | A | 97 | 61 | a |
| 34 | 22 | " | 66 | 42 | B | 98 | 62 | b |
| 35 | 23 | # | 67 | 43 | C | 99 | 63 | c |
| 36 | 24 | $ | 68 | 44 | D | 100 | 64 | d |
| 37 | 25 | % | 69 | 45 | E | 101 | 65 | e |
| 38 | 26 | & | 70 | 46 | F | 102 | 66 | f |
| 39 | 27 | ' | 71 | 47 | G | 103 | 67 | g |
| 40 | 28 | ( | 72 | 48 | H | 104 | 68 | h |
| 41 | 29 | ) | 73 | 49 | I | 105 | 69 | i |
| 48 | 30 | 0 | 80 | 50 | P | 112 | 70 | p |
| 49 | 31 | 1 | 81 | 51 | Q | 113 | 71 | q |
| 57 | 39 | 9 | 90 | 5A | Z | 122 | 7A | z |
| 58 | 3A | : | 91 | 5B | [ | 123 | 7B | { |
| 61 | 3D | = | 93 | 5D | ] | 125 | 7D | } |
| 63 | 3F | ? | 95 | 5F | _ | 126 | 7E | ~ |
(字母和数字是连续的:A=65, Z=90, a=97, z=122, 0=48, 9=57。)

两个实用事实
- 大写转小写相差正好 32(
A=65,a=97)。翻转 0x20 位即可改变大小写。 - 数字转数值:
'7'是 55,减去 48('0')得到数值——经典的char - '0'技巧。

控制字符(部分)
| Dec | Hex | 名称 | 含义 |
|---|---|---|---|
| 0 | 00 | NUL | 空终止符 |
| 9 | 09 | HT | 水平制表符 |
| 10 | 0A | LF | 换行(Unix 换行符) |
| 13 | 0D | CR | 回车 |
| 27 | 1B | ESC | 转义(ANSI 序列) |
| 127 | 7F | DEL | 删除 |
\r\n(CR+LF, 13+10)是 Windows 行尾;Unix 仅使用 \n(10)。
ASCII、Unicode 和二进制
ASCII 是 Unicode 的前 128 个码点,UTF-8 以相同方式编码它们——每个字符一个字节。超过 127 的任何内容(重音符号、表情符号、中日韩文字)在 UTF-8 中需要多个字节。要查看字符的位,请使用文本转二进制工具进行转换;对于超出 ASCII 的码点,请使用文本转 Unicode。
常见问题
'A' 的 ASCII 码是多少? 十进制 65,十六进制 0x41,二进制 1000001。小写 'a' 是 97。
ASCII 中有多少个字符? 128 个(编码 0–127):33 个控制字符和 95 个可打印字符(包括空格)。
ASCII 字母的二进制是什么?
每个 ASCII 字符是 7 位(通常存储为 8 位)。'A'(65)是 1000001;转换任何文本以查看其位。
使用文本转二进制工具将文本转换为其二进制表示。