最全ASCII对应码表-键值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OCT(八进制)
最全ASCII码对应表—与键盘按键对应值
(二进)Bin (十进)Dec (十六进)Hex 缩写/字符解释
0000 0000 0 00 NUL (null) 空字符
0000 0001 1 01 SOH (start of handing) 标题开始0000 0010 2 02 STX (start of text) 正文开始0000 0011 3 03 ETX (end of text) 正文结束0000 0100 4 04 EOT (end of transmission) 传输结束0000 0101 5 05 ENQ (enquiry) 请求
0000 0110 6 06 ACK (acknowledge) 收到通知
0000 0111 7 07 BEL (bell) 响铃
0000 1000 8 08 BS (backspace) 退格
0000 1001 9 09 HT (horizontal tab) 水平制表符0000 1010 10 0A LF (NL line feed, new line) 换行键0000 1011 11 0B VT (vertical tab) 垂直制表符0000 1100 12 0C FF (NP form feed, new page) 换页键0000 1101 13 0D CR (carriage return) 回车键
0000 1110 14 0E SO (shift out) 不用切换0000 1111 15 0F SI (shift in) 启用切换
0001 0000 16 10 DLE (data link escape) 数据链路转义0001 0001 17 11 DC1 (device control 1) 设备控制1 0001 0010 18 12 DC2 (device control 2) 设备控制2
0001 0011 19 13 DC3 (device control 3) 设备控制3 0001 0100 20 14 DC4 (device control 4) 设备控制4 0001 0101 21 15 NAK (negative acknowledge) 拒绝接收0001 0110 22 16 SYN (synchronous idle) 同步空闲0001 0111 23 17 ETB (end of trans. block) 传输块结束0001 1000 24 18 CAN (cancel) 取消
0001 1001 25 19 EM (end of medium) 介质中断0001 1010 26 1A SUB (substitute) 替补
0001 1011 27 1B ESC (escape) 溢出
0001 1100 28 1C FS (file separator) 文件分割符0001 1101 29 1D GS (group separator) 分组符0001 1110 30 1E RS (record separator) 记录分离符0001 1111 31 1F US (unit separator) 单元分隔符0010 0000 32 20 空格
0010 0001 33 21 !
0010 0010 34 22 "
0010 0011 35 23 #
0010 0100 36 24 $
0010 0101 37 25 %
0010 0110 38 26 &
0010 0111 39 27 '
0010 1000 40 28 (
0010 1010 42 2A * 0010 1011 43 2B + 0010 1100 44 2C , 0010 1101 45 2D - 0010 1110 46 2E . 0010 1111 47 2F / 0011 0000 48 30 0 0011 0001 49 31 1 0011 0010 50 32 2 0011 0011 51 33 3 0011 0100 52 34 4 0011 0101 53 35 5 0011 0110 54 36 6 0011 0111 55 37 7 0011 1000 56 38 8 0011 1001 57 39 9 0011 1010 58 3A : 0011 1011 59 3B ; 0011 1100 60 3C < 0011 1101 61 3D = 0011 1110 62 3E >
0100 0000 64 40 @
0100 0001 65 41 A 0100 0010 66 42 B 0100 0011 67 43 C 0100 0100 68 44 D 0100 0101 69 45 E 0100 0110 70 46 F 0100 0111 71 47 G 0100 1000 72 48 H 0100 1001 73 49 I 0100 1010 74 4A J 0100 1011 75 4B K 0100 1100 76 4C L 0100 1101 77 4D M 0100 1110 78 4E N 0100 1111 79 4F O 0101 0000 80 50 P 0101 0001 81 51 Q 0101 0010 82 52 R 0101 0011 83 53 S
0101 0101 85 55 U 0101 0110 86 56 V 0101 0111 87 57 W 0101 1000 88 58 X 0101 1001 89 59 Y 0101 1010 90 5A Z 0101 1011 91 5B [ 0101 1100 92 5C \ 0101 1101 93 5D ] 0101 1110 94 5E ^ 0101 1111 95 5F _ 0110 0000 96 60 ` 0110 0001 97 61 a 0110 0010 98 62 b 0110 0011 99 63 c 0110 0100 100 64 d 0110 0101 101 65 e 0110 0110 102 66 f 0110 0111 103 67 g 0110 1000 104 68 h 0110 1001 105 69 i
0110 1011 107 6B k 0110 1100 108 6C l 0110 1101 109 6D m 0110 1110 110 6E n 0110 1111 111 6F o 0111 0000 112 70 p 0111 0001 113 71 q 0111 0010 114 72 r 0111 0011 115 73 s 0111 0100 116 74 t 0111 0101 117 75 u 0111 0110 118 76 v 0111 0111 119 77 w 0111 1000 120 78 x 0111 1001 121 79 y 0111 1010 122 7A z 0111 1011 123 7B { 0111 1100 124 7C | 0111 1101 125 7D } 0111 1110 126 7E ~
0111 1111 127 7F DEL (delete) 删除
键盘常用ASCII码(十进制表示值)
ESC键VK_ESCAPE (27)
回车键:VK_RETURN (13)
TAB键:VK_TAB (9)
Caps Lock键:VK_CAPITAL (20)
Shift键:VK_SHIFT (16)
Ctrl键:VK_CONTROL (17)
Alt键:VK_MENU (18)
空格键:VK_SPACE (/32)
退格键:VK_BACK (8)
左徽标键:VK_LWIN (91)
右徽标键:VK_LWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键:VK_INSERT (45)
Home键:VK_HOME (36)
Page Up:VK_PRIOR (33)
PageDown:VK_NEXT (34)
End键:VK_END (35)
Delete键:VK_DELETE (46)
方向键(←):VK_LEFT (37)
方向键(↑):VK_UP (38)
方向键(→):VK_RIGHT (39)
方向键(↓):VK_DOWN (40)
F1键:VK_F1 (112)
F2键:VK_F2 (113)
F3键:VK_F3 (114)
F4键:VK_F4 (115)
F5键:VK_F5 (116)
F6键:VK_F6 (117)
F7键:VK_F7 (118)
F8键:VK_F8 (119)
F9键:VK_F9 (120)
F10键:VK_F10 (121)
F11键:VK_F11 (122)
F12键:VK_F12 (123)
Num Lock键:VK_NUMLOCK (144) 小键盘0:VK_NUMPAD0 (96) 小键盘1:VK_NUMPAD0 (97) 小键盘2:VK_NUMPAD0 (98) 小键盘3:VK_NUMPAD0 (99) 小键盘4:VK_NUMPAD0 (100) 小键盘5:VK_NUMPAD0 (101) 小键盘6:VK_NUMPAD0 (102) 小键盘7:VK_NUMPAD0 (103) 小键盘8:VK_NUMPAD0 (104) 小键盘9:VK_NUMPAD0 (105) 小键盘.:VK_DECIMAL (110) 小键盘*:VK_MULTIPLY (106) 小键盘+:VK_MULTIPLY (107) 小键盘-:VK_SUBTRACT (109) 小键盘/:VK_DIVIDE (111) Pause Break键:VK_PAUSE (19) Scroll Lock键:VK_SCROLL (145)
常见ASCII码的大小规则:0~9<A~Z<a~z
1)数字比字母要小。
如“7”<“F”;
2)数字0比数字9要小,并按0到9顺序递增。
如“3”<“8” ;
3)字母A比字母Z要小,并按A到Z顺序递增。
如“A”<“Z” ;
4)同个字母的大写字母比小写字母要小32。
如“A”<“a” 。
记住几个常见字母的ASCII码大小:“A”为65;“a”为97;“0”为48。
另外还有128-255的ASCII字符
[编辑本段]
字符集简史
6000年前象形文字
3000年前字母表
1838年到1854年Samuel F. B. Morse发明了电报,字母表中的每个字符对应于一系列短的和长的脉冲
1821年到1824年Louis Braille发明盲文,6位代码,它把字符、常用字母组合、常用单字和标点进行编码。
一个特殊的escape代码表示后续的字符代码应解释为大写。
一个特殊的shift代码允许后续代码被解释为数字。
1931年CCITT标准化Telex代码,包括Baudot #2的代码,都是包括字符和数字的5位代码。
1890年早期计算机的字符码是从Hollerith卡片,6位字符码系统BCDIC(Binary-Coded Decimal Interc hange Code:二进制编码十进制交换编码)
60年代扩展为8位EBCDIC,IBM大型主机的标准
1967年美国信息交换标准码(ASCII:American Standard Code for Information Interchange)
在字符长度是6位、7位还是8位的问题上产生了很大的争议。
从可靠性的观点来看不应使用替换字符,
因此ASCII不能是6位编码,但由于费用的原因也排除了8位版本的方案(当时每位的储存空间成本仍很昂贵)。
这样,最终的字符码就有26个小写字母、26个大写字母、10个数字、32个符号、33个句柄和一个空格,总共128个字符码。
ASCII现在记录在ANSI 字符集-用于信息交换的7位美国国家标准码(7-Bit ASCII:7-Bit American N ational
Standard Code for Information Interchange),由美国国家标准协会(American National Standards I nstitute)发布。
图2-1中所示的ASCII字符码与ANSI文件中的格式相似。
[编辑本段]
ASCII国际问题
ASCII是美国标准,所以它不能良好满足其它讲英语国家的需要。
例如英国的英镑符号(£)在哪里拉丁语字母表重音符号
使用斯拉夫字母表的希腊语、希伯来语、阿拉伯语和俄语。
汉字系统的中国象形汉字,日本和朝鲜。
1967年,国际标准化组织(ISO:International Standards Organization)推荐一个ASCII的变种,代码0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D“为国家使用保留”,而代码0x5E、0x60和0x7E标为
“当国内要求的特殊字符需要8、9或10个空间位置时,可用于其它图形符号”。
这显然不是一个最佳的国际解决方案,
因为这并不能保证一致性。
但这却显示了人们如何想尽办法为不同的语言来编码的。
[编辑本段]
扩展ASCII
1981年IBM PC ROM256个字符的字符集,即IBM扩展字符集
1985年11 Windows字符集被称作“ANSI字符集”,遵循了ANSI草案和ISO标准(ANSI/ISO 8859-1-19 87,简“Latin 1”。
ANSI字符集的最初版本:
1987年4月代码页437,字符的映像代码,出现在MS-DOS
[编辑本段]
双字节字符集
双字节字符集(DBCS:double-byte character set),解决中国、日本和韩国的象形文字符和ASCII的某种兼容性。
DBCS从256代码开始,就像ASCII一样。
与任何行为良好的代码页一样,最初的128个代码是ASCII。
然而,较高的128个代码中的某些总是跟随着第二个字节。
这两个字节一起(称作首字节和跟随字节)定义一个字符,通常是一个复杂的象形文字。
[编辑本段]
键盘常用ASCII码
ESC键VK_ESCAPE (27)
回车键:VK_RETURN (13)
TAB键:VK_TAB (9)
Caps Lock键:VK_CAPITAL (20) Shift键:VK_SHIFT (16)
Ctrl键:VK_CONTROL (17)
Alt键:VK_MENU (18)
空格键:VK_SPACE (32)
退格键:VK_BACK (8)
左徽标键:VK_LWIN (91)
右徽标键:VK_LWIN (92)
鼠标右键快捷键:VK_APPS (93) Insert键:VK_INSERT (45)
Home键:VK_HOME (36)
Page Up:VK_PRIOR (33) PageDown:VK_NEXT (34)
End键:VK_END (35)
Delete键:VK_DELETE (46)
方向键(←):VK_LEFT (37)
方向键(↑):VK_UP (38)
方向键(→):VK_RIGHT (39)
方向键(↓):VK_DOWN (40)
F1键:VK_F1 (112)
F2键:VK_F2 (113)
F3键:VK_F3 (114)
F4键:VK_F4 (115)
F5键:VK_F5 (116)
F6键:VK_F6 (117)
F7键:VK_F7 (118)
F8键:VK_F8 (119)
F9键:VK_F9 (120)
F10键:VK_F10 (121)
F11键:VK_F11 (122)
F12键:VK_F12 (123)
Num Lock键:VK_NUMLOCK (144)小键盘0:VK_NUMPAD0 (48)
小键盘1:VK_NUMPAD0 (49)
小键盘2:VK_NUMPAD0 (50)
小键盘3:VK_NUMPAD0 (51)
小键盘4:VK_NUMPAD0 (52)
小键盘5:VK_NUMPAD0 (53)
小键盘6:VK_NUMPAD0 (54)
小键盘7:VK_NUMPAD0 (55)
小键盘8:VK_NUMPAD0 (56)
小键盘9:VK_NUMPAD0 (57)
小键盘.:VK_DECIMAL (46)
小键盘*:VK_MULTIPLY (42)
小键盘+:VK_ADD (43)
小键盘-:VK_SUBTRACT (45)
小键盘/:VK_DIVIDE (47)
Pause Break键:VK_PAUSE (19)
Scroll Lock键:VK_SCROLL (145)
[编辑本段]
ASCII码的算法:
A在ascii中定义为01000001,也就是十进制65,有了这个标准后,当我们输入A时,计算机就可以通过ascii码知道输入的字符的二进制编码是01000001。
而没有这样的标准,我们就必须自己想办法告诉计算机我们输入了一个A;没有这样的标准,我们在别的机器上就需要重新编码以告诉计算机我们要输入A。
ascii码指的不是十进制,是二进制。
只是用十进制表示习惯一点罢了,比如在ascii码中,A的二进制编码为01000001,如果用十进制表示是65,用十六进制表示就是41H。
在ascii码表中,只包括了一些字符、数字、标点符号的信息表示,这主要是因为计算机是美国发明的,在英文下面,我们使用ascii表示就足够了!但是在汉字输入下面,用ascii码就不能表示了,而汉字只是中国的通用表示,所以如果我们要在计算机中输入汉字,就必须有一个像ascii码的标准来表示每一个汉字,这就是中国的汉字国标码,它定义了汉字在计算机中的一个表示标准。
通过这个标准,但我们输入汉字的时候,我们的输入码就转换为区位码,通过唯一的区位码得到这个汉字的字形码并显示出来。
当然汉字的区位码在计算机中也是用二进制表示的!
二进制数转换为十进制数
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成十进制
第0位0 * 2^0 = 0
第1位0 * 2^1 = 0
第2位 1 * 2^2 = 4
第3位0 * 2^3 = 0
第4位0 * 2^4 = 0
第5位 1 * 2^5 = 32
第6位 1 * 2^6 = 64
第7位0 * 2^7 = 0
---------------------------
100
用横式计算为:
0 * 2^0 + 0 * 2^1 + 1 * 2^2 +0*2^3+ 0 * 2^4 + 1 * 2^5 + 1 * 2^6 + 0 * 2^7 = 100
0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1 * 2^
2 + 1 * 2^5 + 1 * 2^6 = 100
6.2.2 八进制数转换为十进制数
八进制就是逢8进1。
八进制数采用0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:1507,转换为十进制为:
用竖式表示:
1507换算成十进制。
第0位7 * 8^0 = 7
第1位0 * 8^1 = 0
第2位 5 * 8^2 = 320
第3位 1 * 8^3 = 512
--------------------------
839
同样,我们也可以用横式直接计算:
7 * 8^0 + 0 * 8^1 + 5 * 8^2 + 1 * 8^3 = 839
结果是,八进制数1507 转换成十进制数为839
6.2.3 八进制数的表达方法
C,C++语言中,如何表达一个八进制数呢如果这个数是876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。
但如果这个数是123、是567,或,那么它是八进制数还是10进制数,都有可能。
所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。
这就是八进制数在C、C++中的表达方法。
由于C和C++都没有提供二进制数的表达方法,所以,这里所学的八进制是我们学习的,CtC++语言的数值表达的第二种进制法。
现在,对于同样一个数,比如是100,我们在代码中可以用平常的10进制表达,例如在变量初始化时:
int a = 100;
我们也可以这样写:
int a = 0144; 6.2.46.2.4 6.2.5 6.2.6 6.2.76.2.4..
0001 = 0 + 0 + 0 + 1 = 1 1
0000 = 0 + 0 + 0 + 0 = 0 0
二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。
如(上行为二制数,下面为对应的十六进制):
1111 1101 ,1010 0101 ,1001 1011
F D , A 5 ,9 B
反过来,当我们看到FD时,如何迅速将它转换为二进制数呢
先转换F:
看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢应该是8 + 4 + 2 + 1,所以四位全为1 :1111。
接着转换D:
看到D,知道它是13,13如何用8421凑呢应该是:8 + 4 + 1,即:1101。
所以,FD转换为二进制数,为:1111 1101
由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。
比如,十进制数1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。
所以我们可以先除以16,得到16进制数:
被除数计算过程商余数
1234 1234/16 77 2
77 77/16 4 13 (D)
4 4/16 0 4
结果16进制为:0x4D2
然后我们可直接写出0x4D2的二进制形式:0100 1101 0010。
其中对映关系为:
0100 -- 4
1101 -- D
0010 -- 2
同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。
下面举例一个int类型的二进制数:
01101101 00011011
我们按四位一组转换为16进制:6D E5 AF 1B。