ASCII(美国信息交换标准代码)完整介绍与教程抖音百科

IT 技术 9 阅读 更新于 2026-10-16 07:52

ASCII(美国信息交换标准代码)完整介绍与教程

维基百科页面:https://zh.wikipedia.org/wiki/ASCII
ASCII 全称 American Standard Code for Information Interchange,中文:美国信息交换标准代码,是计算机历史上最重要的字符编码,也是 Unicode 的基础。

一、基础概念

  1. 诞生历史

1963年起草,1967年正式发布,最后一次修订1986年;被采纳为国际标准 ISO‑646。
原始为 7位编码,27=128,一共128个码点,编号范围:十进制 0‑127。
计算机存储是字节(8bit),标准ASCII把最高位固定填0,占用1字节。

  1. 两类字符
  • 控制字符:0‑31、127,共33个,不可打印:用于老式打印机、终端设备,如换行、回车、制表符;大部分现在已经废弃,LF换行、CR回车、Tab制表仍广泛使用。
  • 可打印字符:32‑126,共95个:空格、数字、大小写英文字母、标点符号。

关键码段(十进制)

十进制范围内容
32空格 Space
48‑57数字 0‑9
65‑90大写字母 A‑Z
97‑122小写字母 a‑z

记忆规律:大写A=65,小写a=97;大小写相差32。例如 A(65)+32 = a(97),编程中大小写转换经常用到这个特性。

  1. 扩展ASCII(8位ASCII)

把8位全部启用,码点 0‑255,多出128个字符。但没有统一标准,不同国家有不同版本(如Windows‑1252),兼容性差,现在基本被Unicode取代。

二、常用控制字符简表(部分)

十进制十六进制名称作用
00x00NUL 空字符字符串结束标记(C语言)
90x09Tab 水平制表符\t 制表缩进
100x0ALF 换行 Line Feed\n Unix/Linux换行
130x0DCR 回车 Carriage Return\r Windows换行 \r\n
1270x7FDEL 删除老式终端删除字符

三、ASCII实操教程(编程示例)

Python示例

# 字符转ASCII码 ord()
print(ord('A'))   # 输出65
print(ord('a'))   # 输出97
print(ord('0'))   # 输出48

# ASCII码转回字符 chr()
print(chr(65))    # 输出'A'
print(chr(97))    # 输出'a'

# 大小写转换:利用差值32
upper_char = 'B'
lower_char = chr(ord(upper_char)+32)
print(lower_char) # b

C语言示例

#include <stdio.h>
int main(){
    char ch = 'A';
    printf("%d\n", ch); // 输出65,char本质就是ASCII数值
    return 0;
}

四、重要特性与局限

  1. ✅ 优点
  • 简单,每个字符占1字节;
  • Unicode前128个码点完全复刻ASCII,所有现代文本编码兼容ASCII;
  • 网络、协议、编程语言语法的底层基础。
  1. ❌ 局限
  • 只支持英文、基础符号,没有中文、日文、重音字母;
  • 扩展ASCII没有统一标准,不同系统乱码;
  • 现代多语言场景必须使用 UTF‑8/Unicode。

UTF‑8 巧妙设计:ASCII字符在UTF‑8中仍然只用1个字节,和ASCII完全一致,这也是ASCII至今仍在发挥作用的原因。

五、常见易错点

  1. 数字字符'0'的ASCII是48,不是0;字符数字和整型数字要区分。
  2. Windows换行是 \r\n(CR+LF),Linux/macOS是\n(LF),根源来自ASCII控制字符。
  3. 空格不是0,空格十进制是32。

六、ASCII码排序规则(字符串比较底层逻辑)

空格 < 数字0‑9 < 大写A‑Z < 小写a‑z
举例:'9' < 'A','Z' < 'a'。很多编程语言字符串大小比较就是直接对比ASCII数值。

如果你需要,我可以输出完整128位ASCII全表,或者讲解ASCII和UTF‑8、GB2312的区别。

标准 ASCII 128 码完整表(0 ~ 127,7位ASCII)

Dec:十进制 | Hex:十六进制 | 缩写/符号 | 名称/说明
0–31、127:控制字符(不可打印);32–126:可打印字符

DecHex符号/缩写说明
00x00NULNull 空字符,C语言字符串结束符
10x01SOHStart of Heading 标题开始
20x02STXStart of Text 正文开始
30x03ETXEnd of Text 正文结束
40x04EOTEnd of Transmission 传输结束
50x05ENQEnquiry 请求
60x06ACKAcknowledge 确认
70x07BELBell 响铃,\a
80x08BSBackspace 退格,\b
90x09TABHorizontal Tab 水平制表符,\t
100x0ALFLine Feed 换行,\n(Unix换行)
110x0BVTVertical Tab 垂直制表
120x0CFFForm Feed 换页,\f
130x0DCRCarriage Return 回车,\r(Windows换行 \r\n)
140x0ESOShift Out 移出
150x0FSIShift In 移入
160x10DLEData Link Escape 数据链路转义
170x11DC1Device Control 1 设备控制1(XON)
180x12DC2Device Control 2 设备控制2
190x13DC3Device Control 3 设备控制3(XOFF)
200x14DC4Device Control 4 设备控制4
210x15NAKNegative Acknowledge 否定确认
220x16SYNSynchronous Idle 同步空闲
230x17ETBEnd of Transmission Block 传输块结束
240x18CANCancel 取消
250x19EMEnd of Medium 介质结束
260x1ASUBSubstitute 替换
270x1BESCEscape 转义字符,\e
280x1CFSFile Separator 文件分隔符
290x1DGSGroup Separator 组分隔符
300x1ERSRecord Separator 记录分隔符
310x1FUSUnit Separator 单元分隔符
320x20(space)空格
330x21!感叹号
340x22"双引号
350x23#井号
360x24$美元符号
370x25%百分号
380x26&和号
390x27'单引号
400x28(左括号
410x29)右括号
420x2A*星号
430x2B+加号
440x2C,逗号
450x2D-减号/连字符
460x2E.句点
470x2F/斜杠
480x300数字0
490x311数字1
500x322数字2
510x333数字3
520x344数字4
530x355数字5
540x366数字6
550x377数字7
560x388数字8
570x399数字9
580x3A:冒号
590x3B;分号
600x3C<小于号
610x3D=等号
620x3E>大于号
630x3F?问号
640x40@@符号
650x41A大写A
660x42B大写B
670x43C大写C
680x44D大写D
690x45E大写E
700x46F大写F
710x47G大写G
720x48H大写H
730x49I大写I
740x4AJ大写J
750x4BK大写K
760x4CL大写L
770x4DM大写M
780x4EN大写N
790x4FO大写O
800x50P大写P
810x51Q大写Q
820x52R大写R
830x53S大写S
840x54T大写T
850x55U大写U
860x56V大写V
870x57W大写W
880x58X大写X
890x59Y大写Y
900x5AZ大写Z
910x5B[左方括号
920x5C\反斜杠(转义符)
930x5D]右方括号
940x5E^脱字符
950x5F_下划线
960x60`反引号
970x61a小写a
980x62b小写b
990x63c小写c
1000x64d小写d
1010x65e小写e
1020x66f小写f
1030x67g小写g
1040x68h小写h
1050x69i小写i
1060x6Aj小写j
1070x6Bk小写k
1080x6Cl小写l
1090x6Dm小写m
1100x6En小写n
1110x6Fo小写o
1120x70p小写p
1130x71q小写q
1140x72r小写r
1150x73s小写s
1160x74t小写t
1170x75u小写u
1180x76v小写v
1190x77w小写w
1200x78x小写x
1210x79y小写y
1220x7Az小写z
1230x7B{左大括号
1240x7C|竖线
1250x7D}右大括号
1260x7E~波浪号
1270x7FDELDelete 删除字符,不可打印

Python一键打印整张ASCII表代码

for dec in range(128):
    hx = hex(dec)
    ch = chr(dec)
    if dec < 32 or dec == 127:
        char_str = "[控制字符]"
    else:
        char_str = ch
    print(f"Dec:{dec:3d} Hex:{hx:4s} 字符:{char_str}")

需要我把这个表格导出为纯Markdown无格式版本,方便直接复制到Obsidian吗?

← 返回IT 技术 yicool 百科 · ASCII(美国信息交换标准代码)完整介绍与教程抖音百科

评论 0