ASCII码表(美国标准信息交换标准码)( American Standard Code for Information Interchange, ASCII )
ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号,以及在美式英语中使用的特殊控制字符。其中:
同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
Bin
0000 0000
0000 0001
0000 0010
0000 0011
0000 0100
0000 0101
0000 0110
0000 0111
0000 1000
0000 1001
0000 1010 10
0000 1011 11
0000 1100 12
0000 1101 13
0000 1110 14
0000 1111 15
0001 0000 16
0001 0001 17
0001 0010 18
0001 0011 19
0001 0100 20
0001 0101 21
0001 0110 22
0001 0111 23
0001 1000 24
0001 1001 25
0001 1010 26
0001 1011 27
0001 1100 28
0001 1101 29
0001 1110 30
0001 1111 31
0010 0000 32
0010 0001 33
0010 0010 34
0010 0011 35
0010 0100 36
0010 0101 37
0010 0110 38
0010 0111 39
0010 1000 40
0010 1001 41
0010 1010 42
0010 1011 43
0010 1100 44
0010 1101 45
0010 1110 46
0010 1111 47
0011 0000 48
0011 0001 49
0011 0010 50
0011 0011 51
0011 0100 52
0011 0101 53
0011 0110 54
0011 0111 55
0011 1000 56
0011 1001 57
0011 1010 58
0011 1011 59
0011 1100 60
0011 1101 61
0011 1110 62
0011 1111 63
0100 0000 64
0100 0001 65
0100 0010 66
0100 0011 67
0100 0100 68
0100 0101 69
0100 0110 70
0100 0111 71
0100 1000 72
0100 1001 73
0100 1010 74
0100 1011 75
0100 1100 76
0100 1101 77
0100 1110 78
0100 1111 79
0101 0000 80
0101 0001 81
0101 0010 82
0101 0011 83
0101 0100 84
0101 0101 85
0101 0110 86
0101 0111 87
0101 1000 88
0101 1001 89
0101 1010 90
0101 1011 91
0101 1100 92
0101 1101 93
0101 1110 94
0101 1111 95
0110 0000 96
0110 0001 97
0110 0010 98
0110 0011 99
0110 0100 100
0110 0101 101
0110 0110 102
0110 0111 103
0110 1000 104
0110 1001 105
0110 1010 106
0110 1011 107
0110 1100 108
0110 1101 109
0110 1110 110
0110 1111 111
0111 0000 112
0111 0001 113
0111 0010 114
0111 0011 115
0111 0100 116
0111 0101 117
0111 0110 118
0111 0111 119
0111 1000 120
0111 1001 121
0111 1010 122
0111 1011 123
0111 1100 124
0111 1101 125
0111 1110 126
0111 1111 127
另外还有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 Interchange Code:二进制编码十进制交换编码)
60年代 扩展为8位EBCDIC,IBM大型主机的标准
1967年 美国信息交换标准码(ASCII:American Standard Code for Information Interchange)
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-1987,简“Latin 1”。
ANSI字符集的最初版本:1987年4月代码页437,字符的映像代码,出现在MS-DOS 3.3
双字节字符集
双字节字符集(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 (96)
小键盘1: VK_NUMPAD1 (97)
小键盘2: VK_NUMPAD2 (98)
小键盘3: VK_NUMPAD3 (99)
小键盘4: VK_NUMPAD4 (100)
小键盘5: VK_NUMPAD5 (101)
小键盘6: VK_NUMPAD6 (102)
小键盘7: VK_NUMPAD7 (103)
小键盘8: VK_NUMPAD8 (104)
小键盘9: VK_NUMPAD9 (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)