ASCII码
目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。
因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以 表示(27=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7 位ASCII码是用七位二进制数进行编码的,可以表示128个字符。
第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来 检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规 定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
为了便于查询,以下列出ASCII码表:第128~255号为扩展字符(不常用)
ASCII字符编码表
b6b5b4 000 001 010 011 100 101 110 111
b3b2b1b0 -
0 0 0 0 NUL DLE SP 0 @ P 、 p
0 0 0 1 SOH DC1 ! 1 A Q a q
0 0 1 0 STX DC2 " 2 B R b r
0 0 1 1 ETX DC3 # 3 C S c s
0 1 0 0 EOT DC4 $ 4 D T d t
0 1 0 1 ENQ NAK % 5 E U e u
0 1 1 0 ACK SYN & 6 F V f v
0 1 1 1 BEL ETB ' 7 G W g w
1 0 0 0 BS CAN ( 8 H X h x
1 0 0 1 HT EM ) 9 I Y I y
1 0 1 0 LF SUB * : J Z j z
1 0 1 1 VT ESC + ; K [ k {
1 1 0 0 FF FS , < L \ l |
1 1 0 1 CR GS - = M ] m }
1 1 1 0 SO RS . > N ↑ m ~
1 1 1 1 SI US / ? O - o DEL
ASCII值为十进制数,控制字符的含义如下表所示。
ENQ 询问字符 DLE 空格 ESC 换码
ACK 承认 DC1 设备控制1 FS 文字分隔符
BEL 报警 DC2 设备控制2 GS 组分隔符
BS 退一格 DC3 设备控制3 RS 记录分隔符
HT 横向列表 DC4 设备控制4 US 单元分隔符
LF 换行 NAK 否定 DEL 删除
从表中可以看到:
每个字符是用7位基2码表示的, 其排列次序为b6b5b4b3b2b1b0, 在表中的b6b5b4为高位部分, b3b2b31b0为低位部分。而一个字符在计算机内实际上用8位表示。正常情况下, 最高一位b7为 "0"。在需要奇偶校验时, 这一位可用于存放奇偶校验的值, 此时称这一位为校验位。
ASCII是128个字符组成的字符集。其中编码值0-31不对应任何可印刷(或称有字形)字符, 通常称它们为控制字符, 用于通信中的通信控制或对计算机设备的功能控制。编码值为32的是空格(或间隔)字符SP。编码值为127的是删除控制DEL码。其余的94个字符称为可印刷字符,有人把空格也计入可印刷字符时,则称有95个可印刷字符。请注意, 这种字符编码中有如下两个规律:
(1)字符0-9这10个数字符的高3位编码为011, 低4 位为000-1001。当去掉高3位的值时, 低4位正好是二进制形式的0-9。这既满足正常的排序关系, 又有利于完成ASCII码与二进制码之间的类型转换。
(2)英文字母的编码值满足正常的字母排序关系, 且大、小写英文字母编码的对应关系相当简便, 差别仅表现在b5一位的值为0或1, 有利于大、小写字母之间的编码变换。
- [游客] 博主你好,我是一名汇编初学者,麻烦把全套资料发给我,谢谢 10/04 18:27
- [xtp1256065080] 1256065080@qq.com 博主,我刚刚接触汇编,可以把全套资料发给我么,谢谢 09/29 12:14
- [游客] luobosang@163.com 博主,我也想学好汇编,麻烦把整套资料发给我,谢谢! 06/13 11:56
- [piaoyi406] 楼主谢谢了,792619575@qq.com 05/06 23:36
- [mingfeng] (1)《嵌入式软件基础——C语言与汇编的融合:翻译版》 【美】刘易斯(Lewis, D.W)著 ( 05/05 17:28
- [游客] (1)《MASM 6.11 汇编语言应用》 蔡友家 著 这本老书,真的很难找 (2)《保 01/20 17:55
- [游客] 好像略懂了! 谢谢 如果这学期早点发现你这些文章,会对自己学习汇编语言有很大的帮助! 12/21 15:25
- [1197257321] 我现在也在学王爽老师的《汇编语言》,想看看你在学汇编时的辅助教材 《汇编语言》,谢了。1197257 11/25 18:47
- [tianyuanwu] 我也想要,可以全部发给我吗,谢谢LZ,我的邮箱是 397225220@qq.com 11/25 12:49
- [游客] ·《嵌入式软件基础——C语言与汇编的融合:翻译版》 和王爽《汇编语言》课后习题答案及实验解答·谢谢 10/31 21:25
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读 01/11 20:31