ASCII碼

ASCII碼

基于拉丁字母的電腦編碼系統
前計算機中用得最廣泛的字符集及其編碼,是由美國國家标準局(ANSI)制定的ASCII碼(American Standard Code for Information Interchange,美國标準信息交換碼),它已被國際标準化組織(ISO)定為國際标準,稱為ISO 646标準。适用于所有拉丁文字字母,ASCII碼有7位碼和8位碼兩種形式。ASCII是AmericanStandardCodeforInformationInterchange的縮寫,用來制訂計算機中每個符号對應的代碼,這也叫做計算機的内碼(code)。[1]
    中文名:美國信息交換标準代碼 外文名: 适用領域: 所屬學科: 英文名:American Standard Code for Information Interchange 别稱:ASCII代碼 簡稱:ASCII 類别:編碼标準 作用:顯示現代英語和其他西歐語言

産生

在計算機中,所有的數據在存儲和運算時都要使用二進制數表示(因為計算機用高電平和低電平分别表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數字還有一些常用的符号(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示,而具體用哪些二進制數字表示哪個符号,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那麼大家就必須使用相同的編碼規則,于是美國有關的标準化組織就出台了ASCII編碼,統一規定了上述常用符号用哪些二進制數來表示。

美國标準信息交換代碼是由美國國家标準學會(American National Standard Institute , ANSI )制定的,标準的單字節字符編碼方案,用于基于文本的數據。起始于50年代後期,在1967年定案。它最初是美國國家标準,供不同計算機在相互通信時用作共同遵守的西文字符編碼标準,它已被國際标準化組織(International Organization for Standardization,ISO)定為國際标準,稱為ISO 646标準。适用于所有拉丁文字字母。

表述方式

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

制數組合來表示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個特殊符号字符、外來語字母和圖形符号。

大小規則

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

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是美國标準,所以它不能良好滿足其它講英語國家的需要。例如英國的英鎊符号(£)在哪裡?

拉丁語字母表重音符号

使用斯拉夫字母表的希臘語、希伯來語、阿拉伯語和俄語。

漢字系統的中國象形漢字,日本和朝鮮。

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年11Windows字符集被稱作“ANSI字符集”,遵循了ANSI草案和ISO标準(ANSI/ISO8859-1-1987,簡“Latin 1”。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-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_RWIN (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_ADD (107)

小鍵盤-:VK_SUBTRACT (109)

小鍵盤/:VK_DIVIDE (111)

Pause Break鍵:VK_PAUSE (19)

Scroll Lock鍵:VK_SCROLL (145)

編程相關

Pascal

取得ASCII碼:Ord(ch)

得到對應字符:Chr(n)

Visual Basic

取得ASCII碼:Asc(ch)

得到對應字符:Chr(n)

PC LOGO編程

取得ASCII碼:asc"(某個字符,如大寫的A)(輸出答案:65)。

漢字編碼

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

至于漢字,不同的字符集用的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

{

*len+=1;

*p_temp++=char_temp;

_putch(char_temp);

x++;

}

}

}。

非打印控制字符

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

碼表圖

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

國際問題

ASCII是美國标準,所以它不能良好滿足其它講英語國家的需要。例如英國的英鎊符号(£)在哪裡?

拉丁語字母表重音符号。

使用斯拉夫字母表的希臘語、希伯來語、阿拉伯語和俄語。

漢字系統的中國象形漢字,日本和朝鮮。

1967年,國際标準化組織(ISO:International Standards Organization)推薦一個ASCII的變種,

代碼0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D“為國家使用保留”,而代碼0x5E、0x60和0x7E标為

“當國内要求的特殊字符需要8、9或10個空間位置時,可用于其它圖形符号”。這顯然不是一個最佳的國際解決方案。

因為這并不能保證一緻性。但這卻顯示了人們如何想盡辦法為不同的語言來編碼的。

相關詞條

相關搜索

其它詞條