换一批

ASCII

ASCII是美国信息交换标准代码的简称,它基于拉丁字母的编码系统。ASCII是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。

经验文章 概述

  产生

  在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示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 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字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年11 Windows字符集被称作“ANSI字符集”,遵循了ANSI草案和ISO标准(ANSI/ISO8859-1-1987,简“Latin 1”。ANSI字符集的最初版本:1987年4月代码页437,字符的映像代码,出现在MS-DOS3.3扩展ASCII 字符是从128 到255(0x80-0xff)的字符。扩展ASCII不再是国际标准。

  双字节编辑双字节字符集(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 字符集是目前最常用的汉字编码标准,windows 95/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


相关文章


    Notice: Undefined index: newRealte in /home/www/www.tulaoshi.com/releases/release-78/cache/smarty/ced17fe8327d76146ff61d7cc614513d622bb215.file.tag.html.php on line 258

    Notice: Trying to get property of non-object in /home/www/www.tulaoshi.com/releases/release-78/cache/smarty/ced17fe8327d76146ff61d7cc614513d622bb215.file.tag.html.php on line 258
手机页面
收藏网站 回到头部