ASCII碼

ASCII碼

前計算機中用得最廣泛的字元集及其編碼,是由美國國家標準局(ANSI)制定的ASCII碼(American Standard Code for Information Interchange,美國標準信息交換碼),它已被國際標準化組織(ISO)定為國際標準,稱為ISO 646標準。適用於所有拉丁文字字母,ASCII碼有7位碼和8位碼兩種形式。ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,並等同於國際標準ISO/IEC 646。請注意,ASCII是American Standard Code for Information Interchange縮寫,而不是ASC2,有很多人在這個地方產生誤解。

基本信息

產生

ASCII碼ASCII碼
計算機中,所有的數據在存儲和運算時都要使用二進制數表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示,而具體用哪些二進制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那么大家就必須使用相同的編碼規則,於是美國有關的標準化組織就出台了ASCII編碼,統一規定了上述常用符號用哪些二進制數來表示。
美國標準信息交換代碼是由美國國家標準學會(AmericanNationalStandardInstitute,ANSI)制定的,標準的單位元組字元編碼方案,用於基於文本的數據。起始於50年代後期,在1967年定案。它最初是美國國家標準,供不同計算機在相互通信時用作共同遵守的西文字元編碼標準,它已被國際標準化組織(InternationalOrganizationforStandardization,ISO)定為國際標準,稱為ISO646標準。適用於所有拉丁文字字母。

表述方式

ASCII碼使用指定的7位或8位二進

ASCII碼ASCII碼
制數組合來表示128或256種可能的字元。標準ASCII碼也叫基礎ASCII碼,使用7位二進制數來表示所有的大寫和小寫字母,數字0到9、標點符號,以及在美式英語中使用的特殊控制字元。其中:
0~31及127(共33個)是控制字元或通信專用字元(其餘為可顯示字元),如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(響鈴)等;通信專用字元:SOH(文頭)、EOT(文尾)、ACK(確認)等;ASCII值為8、9、10和13分別轉換為退格、制表、換行和回車字元。它們並沒有特定的圖形顯示,但會依不同的應用程式,而對文本顯示有不同的影響。
32~126(共95個)是字元(32是空格),其中48~57為0到9十個阿拉伯數字。
65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算符號等。
同時還要注意,在標準ASCII中,其最高位(b7)用作奇偶校驗位。所謂奇偶校驗,是指在代碼傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。奇校驗規定:正確的代碼一個位元組中1的個數必須是奇數,若非奇數,則在最高位b7添1;偶校驗規定:正確的代碼一個位元組中1的個數必須是偶數,若非偶數,則在最高位b7添1。
後128個稱為擴展ASCII碼。許多基於x86的系統都支持使用擴展(或“高”)ASCII。擴展ASCII碼允許將每個字元的第8位用於確定附加的128個特殊符號字元、外來語字母和圖形符號。

標準I表

in Dec Hex 縮寫/字元 解釋
0000 0000 0 00 NUL(null) 空字元
0000 0001 1 01 SOH(start of headline) 標題開始
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 (space) 空格
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 1001 41 29 )
0010 1010 42 2A *
0010 1011 43 2B +
0010 1100 44 2C ,
0010 1101 45 2D -
0010 1110 46 2E .
00101111 47 2F /
00110000 48 30 0
00110001 49 31 1
00110010 50 32 2
00110011 51 33 3
00110100 52 34 4
00110101 53 35 5
00110110 54 36 6
00110111 55 37 7
00111000 56 38 8
00111001 57 39 9
00111010 58 3A :
00111011 59 3B ;
00111100 60 3C <
00111101 61 3D =
00111110 62 3E >
00111111 63 3F ?
01000000 64 40 @
01000001 65 41 A
01000010 66 42 B
01000011 67 43 C
01000100 68 44 D
01000101 69 45 E
01000110 70 46 F
01000111 71 47 G
01001000 72 48 H
01001001 73 49 I
01001010 74 4A J
01001011 75 4B K
01001100 76 4C L
01001101 77 4D M
01001110 78 4E N
01001111 79 4F O
01010000 80 50 P
01010001 81 51 Q
01010010 82 52 R
01010011 83 53 S
01010100 84 54 T
01010101 85 55 U
01010110 86 56 V
01010111 87 57 W
01011000 88 58 X
01011001 89 59 Y
01011010 90 5A Z
01011011 91 5B [
01011100 92 5C \
01011101 93 5D ]
01011110 94 5E ^
01011111 95 5F _
01100000 96 60 `
01100001 97 61 a
01100010 98 62 b
01100011 99 63 c
01100100 100 64 d
01100101 101 65 e
01100110 102 66 f
01100111 103 67 g
01101000 104 68 h
01101001 105 69 i
01101010 106 6A j
01101011 107 6B k
01101100 108 6C l
01101101 109 6D m
01101110 110 6E n
01101111 111 6F o
01110000 112 70 p
01110001 113 71 q
01110010 114 72 r
01110011 115 73 s
01110100 116 74 t
01110101 117 75 u
01110110 118 76 v
01110111 119 77 w
01111000 120 78 x
01111001 121 79 y
01111010 122 7A z
01111011 123 7B {
01111100 124 7C |
01111101 125 7D }
01111110 126 7E ~
01111111 127 7F DEL(delete) 刪除
八進制 十六進制 十進制 字元 八進制 十六進制 十進制 字元
0 0 0 nul 100 40 64 @
1 1 1 soh 101 41 65 A
2 2 2 stx 102 42 66 B
3 3 3 etx 103 43 67 C
4 4 4 eot 104 44 68 D
5 5 5 enq 105 45 69 E
6 6 6 ack 106 46 70 F
7 7 7 bel 107 47 71 G
10 8 8 bs 110 48 72 H
11 9 9 ht 111 49 73 I
12 0a 10 nl 112 4a 74 J
13 0b 11 vt 113 4b 75 K
14 0c 12 ff 114 4c 76 L
15 0d 13 cr 115 4d 77 M
16 0e 14 so 116 4e 78 N
17 0f 15 si 117 4f 79 O
20 10 16 dle 120 50 80 P
21 11 17 dc1 121 51 81 Q
22 12 18 dc2 122 52 82 R
23 13 19 dc3 123 53 83 S
24 14 20 dc4 124 54 84 T
25 15 21 nak 125 55 85 U
26 16 22 syn 126 56 86 V
27 17 23 etb 127 57 87 W
30 18 24 can 130 58 88 X
31 19 25 em 131 59 89 Y
32 1a 26 sub 132 5a 90 Z
33 1b 27 esc 133 5b 91 [
34 1c 28 fs 134 5c 92 \
35 1d 29 gs 135 5d 93 ]
36 1e 30 re 136 5e 94 ^
37 1f 31 us 137 5f 95 _
40 20 32 sp 140 60 96 '
41 21 33 ! 141 61 97 a
42 22 34 " 142 62 98 b
43 23 35 # 143 63 99 c
44 24 36 $ 144 64 100 d
45 25 37 % 145 65 101 e
46 26 38 & 146 66 102 f
47 27 39 ` 147 67 103 g
50 28 40 ( 150 68 104 h
51 29 41 ) 151 69 105 i
52 2a 42 * 152 6a 106 j
53 2b 43 + 153 6b 107 k
54 2c 44 , 154 6c 108 l
55 2d 45 - 155 6d 109 m
56 2e 46 . 156 6e 110 n
57 2f 47 / 157 6f 111 o
60 30 48 0 160 70 112 p
61 31 49 1 161 71 113 q
62 32 50 2 162 72 114 r
63 33 51 3 163 73 115 s
64 34 52 4 164 74 116 t
65 35 53 5 165 75 117 u
66 36 54 6 166 76 118 v
67 37 55 7 167 77 119 w
70 38 56 8 170 78 120 x
71 39 57 9 171 79 121 y
72 3a 58 : 172 7a 122 z
73 3b 59 ; 173 7b 123 {
74 3c 60 < 174 7c 124 |
75 3d 61 = 175 7d 125 }
76 3e 62 > 176 7e 126 ~
77 3f 63 ? 177 7f 127 del

大小規則

1)數字0~9比字母要小。如"7"<"F";

ASCII碼ASCII碼

2)數字0比數字9要小,並按0到9順序遞增。如"3"<"8"
3)字母A比字母Z要小,並按A到Z順序遞增。如"A"<"Z"
4)同個字母的大寫字母比小寫字母要小。如"A"<"a"。
記住幾個常見字母的ASCII碼大小:
“換行LF”為0x0A;“回車CR”為0x0D;空格為0x20;"0"為0x30;"A"為0x41;"a"為0x61。
另外還有128-255的ASCII字元。
查詢ASCII技巧,方便查詢ASCII碼對應的字元:新建一個文本文檔,按住ALT+要查詢的碼值(注意,這裡是十進制),鬆開即可顯示出對應字元。例如:按住ALT+97,則會顯示出'a'。

國際問題

ASCII碼查詢器ASCII碼查詢器
ASCII是美國標準,所以它不能良好滿足其它講英語國家的需要。例如英國的英鎊符號(£)在哪裡?
拉丁語字母表重音符號
使用斯拉夫字母表的希臘語、希伯來語、阿拉伯語和俄語。
漢字系統的中國象形漢字,日本和朝鮮。
1967年,國際標準化組織(ISO:InternationalStandardsOrganization)推薦一個ASCII的變種,
代碼0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D“為國家使用保留”,而代碼0x5E、0x60和0x7E標為
“當國內要求的特殊字元需要8、9或10個空間位置時,可用於其它圖形符號”。這顯然不是一個最佳的國際解決方案,
因為這並不能保證一致性。但這卻顯示了人們如何想盡辦法為不同的語言來編碼的。

擴展ASCII

1981年IBMPCROM256個字元的字元集,即IBM擴展字元集
1985年11Windows字元集被稱作“ANSI字元集”,遵循了ANSI草案和ISO標準(ANSI/ISO8859-1-1987,簡“Latin1”。ANSI字元集的最初版本:
1987年4月代碼頁437,字元的映像代碼,出現在MS-DOS3.3
擴展ASCII字元是從128到255(0x80-0xff)的字元。
擴展ASCII不再是國際標準。

列印字元

擴展的ASCII字元滿足了對更多字元的需求。擴展的ASCII包含ASCII中已有的128個字元(數字0–32顯示在下圖中),又增加了128個字元,總共是256個。即使有了這些更多的字元,許多語言還是包含無法壓縮到256個字元中的符號。因此,出現了一些ASCII的變體來囊括地區性字元和符號。例如,許多軟體程式把ASCII表(又稱作ISO8859-1)用於北美、西歐、澳大利亞和非洲的語言。

雙位元組

雙位元組字元集(DBCS:double-bytecharacterset),解決中國日本韓國的象形文字元和ASCII的某種兼容性。
DBCS從256代碼開始,就像ASCII一樣。與任何行為良好的代碼頁一樣,最初的128個代碼是ASCII。
然而,較高的128個代碼中的某些總是跟隨著第二個位元組。
這兩個位元組一起(稱作首位元組和跟隨位元組)定義一個字元,通常是一個複雜的象形文字。

虛擬ASCII值

ESC鍵VK_ESCAPE(27)
回車鍵:VK_RETURN(13)
TAB鍵:VK_TAB(9)
CapsLock鍵:VK_CAPITAL(20)
Shift鍵:VK_SHIFT(16)

鍵盤常用ASCII碼鍵盤常用ASCII碼

Ctrl鍵:VK_CONTROL(17)
Alt鍵:VK_MENU(18)
空格鍵:VK_SPACE(32)
退格鍵:VK_BACK(8)
左徽標鍵:VK_LWIN(91)
右徽標鍵:VK_RWIN(92)
滑鼠右鍵快捷鍵:VK_APPS(93)
Insert鍵:VK_INSERT(45)
Home鍵:VK_HOME(36)
PageUp: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)
NumLock鍵: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_ADD(107)
小鍵盤-:VK_SUBTRACT(109)
小鍵盤/:VK_DIVIDE(111)
PauseBreak鍵:VK_PAUSE(19)
ScrollLock鍵:VK_SCROLL(145)

編程相關

Pascal

取得ASCII碼:Ord(ch)
得到對應字元:Chr(n)
VisualBasic
取得ASCII碼:Asc(ch)
得到對應字元:Chr(n)
PCLOGO編程
取得ASCII碼:asc"(某個字元,如大寫的A)(輸出答案:65)。

漢字編碼

0-127是7位ASCII碼的範圍,是國際標準

ASCII碼 漢字的編碼與BCD碼ASCII碼 漢字的編碼與BCD碼

至於漢字,不同的字元集用的ascii碼的範圍也不一樣,常用的漢字字元集有GB2312-80,GBK,
Big5,unicode等。下面我重點說一說最常用的GB_2312的字元集。
GB_2312字元集是目前最常用的漢字編碼標準,windows95/98/2000中使用的GBK字元集就包含了GB2312,或者說和GB2312兼容,GB_2312字元集包含了6763個的簡體漢字,和682個標準中文符號。在這個標準中,每個漢字用2個位元組來表示,每個位元組的ascii碼為161-254(16進制A1-FE),第一個位元組對應於區碼的1-94區,第二個位元組對應於位碼的1-94位。
161-254其實很好記憶,大家知道英文字元中,可列印的字元範圍為33-126。將這對數加上128(或者說最高位置1),就得到漢字使用的字元的範圍。
//GB18030的規範是漢字第一個位元組在0x81-0xFE之間,第二個位元組位於區間0x40-0x7E以及0x80-0xFE。每個位元組轉化為整數大於128。
if((char_temp>=0x81)&&(char_temp<=0xFE))
{
if(*len<nlen)
{
*len+=1;
*p_temp++=char_temp;
_putch(char_temp);
x++;
}
}
}。

非列印控制字元

ASCII 表上的數字 0–31 分配給了控制字元,用於控制像印表機等一些外圍設備。例如,12 代表換頁/新頁功能。此命令指示印表機跳到下一頁的開頭。

ASCII非列印控制字元表

碼錶圖

(0-127不包含擴展部分)

ascii碼錶圖

國際問題

ASCII是美國標準,所以它不能良好滿足其它講英語國家的需要。例如英國的英鎊符號(£)在哪裡?
拉丁語字母表重音符號。
使用斯拉夫字母表的希臘語、希伯來語、阿拉伯語和俄語。
漢字系統的中國象形漢字,日本和朝鮮。
1967年,國際標準化組織(ISO:InternationalStandardsOrganization)推薦一個ASCII的變種,
代碼0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D“為國家使用保留”,而代碼0x5E、0x60和0x7E標為
“當國內要求的特殊字元需要8、9或10個空間位置時,可用於其它圖形符號”。這顯然不是一個最佳的國際解決方案。
因為這並不能保證一致性。但這卻顯示了人們如何想盡辦法為不同的語言來編碼的。

相關詞條

相關搜尋

熱門詞條

聯絡我們