折疊 編輯本段 產(chǎn)生[1][2]在計(jì)算機(jī)中,所有的數(shù)據(jù)在存儲和運(yùn)算時(shí)都要使用二進(jìn)制數(shù)表示(因?yàn)橛?jì)算機(jī)用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數(shù)字還有一些常用的符號(例如*、#、@等)在計(jì)算機(jī)中存儲時(shí)也要使用二進(jìn)制數(shù)來表示,而具體用哪些二進(jìn)制數(shù)字表示哪個符號,當(dāng)然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那么大家就必須使用相同的編碼規(guī)則,于是美國有關(guān)的標(biāo)準(zhǔn)化組織就出臺了ASCII編碼,統(tǒng)一規(guī)定了上述常用符號用哪些二進(jìn)制數(shù)來表示。 美國標(biāo)準(zhǔn)信息交換代碼是由美國國家標(biāo)準(zhǔn)學(xué)會(American National Standard Institute , ANSI )制定的,標(biāo)準(zhǔn)的單字節(jié)字符編碼方案,用于基于文本的數(shù)據(jù)。起始于50年代后期,在1967年定案。它最初是美國國家標(biāo)準(zhǔn),供不同計(jì)算機(jī)在相互通信時(shí)用作共同遵守的西文字符編碼標(biāo)準(zhǔn),它已被國際標(biāo)準(zhǔn)化組織(International Organization for Standardization, ISO)定為國際標(biāo)準(zhǔn),稱為ISO 646標(biāo)準(zhǔn)。適用于所有拉丁文字字母。 折疊 編輯本段 表述方式ASCII 碼使用指定的7 位或8 位二進(jìn)制數(shù)組合來表示128 或256 種可能的字符。標(biāo)準(zhǔn)ASCII 碼也叫基礎(chǔ)ASCII碼,使用7 位二進(jìn)制數(shù)來表示所有的大寫和小寫字母,數(shù)字0 到9、標(biāo)點(diǎn)符號, 以及在美式英語中使用的特殊控制字符。其中: 0~31及127(共33個)是控制字符或通信專用字符(其余為可顯示字符),如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(響鈴)等;通信專用字符:SOH(文頭)、EOT(文尾)、ACK(確認(rèn))等;ASCII值為8、9、10 和13 分別轉(zhuǎn)換為退格、制表、換行和回車字符。它們并沒有特定的圖形顯示,但會依不同的應(yīng)用程序,而對文本顯示有不同的影響。 32~126(共95個)是字符(32是空格),其中48~57為0到9十個阿拉伯?dāng)?shù)字。 65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其余為一些標(biāo)點(diǎn)符號、運(yùn)算符號等。 同時(shí)還要注意,在標(biāo)準(zhǔn)ASCII中,其最高位(b7)用作奇偶校驗(yàn)位。所謂奇偶校驗(yàn),是指在代碼傳送過程中用來檢驗(yàn)是否出現(xiàn)錯誤的一種方法,一般分奇校驗(yàn)和偶校驗(yàn)兩種。奇校驗(yàn)規(guī)定:正確的代碼一個字節(jié)中1的個數(shù)必須是奇數(shù),若非奇數(shù),則在最高位b7添1;偶校驗(yàn)規(guī)定:正確的代碼一個字節(jié)中1的個數(shù)必須是 折疊 編輯本段 標(biāo)準(zhǔn)I表
收起
收起 折疊 編輯本段 大小規(guī)則1)數(shù)字0~9比字母要小。如"7"<"F"; 2)數(shù)字0比數(shù)字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碼對應(yīng)的字符:新建一個文本文檔,按住ALT+要查詢的碼值(注意,這里是十進(jìn)制),松開即可顯示出對應(yīng)字符。例如:按住ALT+97,則會顯示出'a'。 折疊 編輯本段 國際問題ASCII是美國標(biāo)準(zhǔn),所以它不能良好滿足其它講英語國家的需要。例如英國的英鎊符號(£)在哪里? 拉丁語字母表重音符號 使用斯拉夫字母表的希臘語、希伯來語、阿拉伯語和俄語。 漢字系統(tǒng)的中國象形漢字,日本和朝鮮。 1967年,國際標(biāo)準(zhǔn)化組織(ISO:International Standards Organization)推薦一個ASCII的變種, 代碼0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D"為國家使用保留",而代碼0x5E、0x60和0x7E標(biāo)為 "當(dāng)國內(nèi)要求的特殊字符需要8、9或10個空間位置時(shí),可用于其它圖形符號"。這顯然不是一個最佳的國際解決方案, 因?yàn)檫@并不能保證一致性。但這卻顯示了人們?nèi)绾蜗氡M辦法為不同的語言來編碼的。 折疊 編輯本段 擴(kuò)展ASCIIASCII擴(kuò)展表1981年IBM PC ROM256個字符的字符集,即IBM擴(kuò)展字符集 1985年11 Windows字符集被稱作"ANSI字符集",遵循了ANSI草案和ISO標(biāo)準(zhǔn)(ANSI/ISO 1987年4月代碼頁437,字符的映像代碼,出現(xiàn)在MS-DOS3.3 擴(kuò)展ASCII 字符是從128 到255(0x80-0xff)的字符。 擴(kuò)展ASCII不再是國際標(biāo)準(zhǔn)。 折疊 編輯本段 雙字節(jié)雙字節(jié)字符集(DBCS:double-byte character set),解決中國、日本和韓國的象形文字符和ASCII的某種兼容性。 DBCS從256代碼開始,就像ASCII一樣。與任何行為良好的代碼頁一樣,最初的128個代碼是ASCII。 然而,較高的128個代碼中的某些總是跟隨著第二個字節(jié)。 這兩個字節(jié)一起(稱作首字節(jié)和跟隨字節(jié))定義一個字符,通常是一個復(fù)雜的象形文字。 折疊 編輯本段 虛擬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) 左徽標(biāo)鍵:VK_LWIN (91) 右徽標(biāo)鍵:VK_RWIN (92) 鼠標(biāo)右鍵快捷鍵: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) 折疊 編輯本段 編程相關(guān)折疊 Pascal取得ASCII碼:Ord(ch) 得到對應(yīng)字符:Chr(n) 折疊 VisualBasic取得ASCII碼:Asc(ch) 得到對應(yīng)字符:Chr(n) 折疊 PCLOGO編程取得ASCII碼:asc "(某個字符,如大寫的A) (輸出答案:65) 折疊 編輯本段 漢字編碼0-127 是7位ASCII 碼的范圍,是國際標(biāo)準(zhǔn)。 至于漢字,不同的字符集用的ascii 碼的范圍也不一樣,常用的漢字字符集有GB2312-80,GBK, Big5,unicode 等。下面我重點(diǎn)說一說最常用的GB_2312 的字符集。 GB_2312 字符集是目前最常用的漢字編碼標(biāo)準(zhǔn),windows 95/98/2000 中使用的 GBK字符集 就包含了GB2312,或者說和GB2312 兼容,GB_2312 字符集包含了 6763個的 簡體漢字,和682 個標(biāo)準(zhǔn)中文符號。在這個標(biāo)準(zhǔn)中,每個漢字用2個字節(jié)來表示,每個字節(jié)的ascii碼為 161-254 (16 進(jìn)制A1 - FE),第一個字節(jié) 對應(yīng)于 區(qū)碼的1-94 區(qū),第二個字節(jié) 對應(yīng)于位碼的1-94 位。 161-254 其實(shí)很好記憶,大家知道英文字符中,可打印的字符范圍為33-126。將 這對 數(shù)加上 128(或者說最高位置1),就得到漢字使用的字符的范圍。 //GB18030的規(guī)范是漢字第一個字節(jié)在0x81-0xFE之間,第二個字節(jié)位于區(qū)間0x40-0x7E以及0x80-0xFE。每個字節(jié)轉(zhuǎn)化為整數(shù)大于128。 if ((char_temp>=0x81)&&(char_temp<=0xFE)) { if(*len<nlen) { *len+=1; *p_temp++=char_temp; _putch(char_temp); x++; } } } |
|