产生原因
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示 。
美国标准信息交换代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,是一种标准的单字节字符编码方案,用于基于文本的数据。它最初是美国国家标准,供不同计算机在相互通信时用作共同遵守的西文字符编码标准,后来它被国际标准化组织(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 个特殊符号字符、外来语字母和图形符号。
大小规则
常见ASCII码的大小规则:09<AZ<a~z。
1)数字比字母要小。如 “7”<“F”;
2)数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;
3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;
4)同个字母的大写字母比小写字母要小32。如“A”<“a” 。
几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48。
问题
在英语中,用128个符号编码便可以表示所有,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用 ASCII 码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号 。
但是,这里又出现了新的问题。不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel (?),在俄语编码中又会代表另一个符号。但是不管怎样,所有这些编码方式中,0–127表示的符号是一样的,不一样的只是128–255的这一段。
至于亚洲国家的文字,使用的符号就更多了,汉字就多达10万左右。一个字节只能表示256种符号,肯定是不够的,就必须使用多个字节表达一个符号。比如,简体中文常见的编码方式是 GB2312,使用两个字节表示一个汉字,所以理论上最多可以表示 256 x 256 = 65536 个符号 。
详细解决方案
ASCII (American Standard Code for Information Interchange)
热度:50 发布时间:2023-12-08 07:21:11.0
相关解决方案
- Cannot find any information on property 'cipher' in a bean of type 'xx.JiamiBean解决思路
- 请问:org.apache.jasper.JasperException: Cannot find any information on property 'userPhone' in a bean of type 'Bean.Sender'
- weservice调用Server returned HTTP response code: 500 for URL解决方法
- 一个关于QR code(二维码) 的有关问题
- \nbproject\build-impl.xml:332: Preverification failed with error code 1. 异常
- JEECG(J2EE Code Generation) 基于代码生成器J2EE智能开发框架 公布新版本通知
- it.sauronsoftware.ftp4j.FTPException [code=550,message= /DLL:Permission denied,该怎么处理
- 急求:PL/SQL Developer 的Product code、Serial number以及Password,该怎么处理
- 请教两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对
- Server returned HTTP response code: 403 for URL如何解决
- code lover解决办法
- MyEclipse错误:Java was started but returned exit code = 1
- EF5 code first 实体继承的有关问题
- 求ef code first课程
- FCIAddFile(failed: code 一 [Failure opening file to be stored in cabinet]
- QR-Code[二维码生成],有这样的控件吗?解决办法
- FCIAddFile(failed: code 1 [Failure opening file to be stored in cabinet],该怎么解决
- 汉字 转换 ASCII,该怎么处理
- VS设置这个是作什么用的? C++ -> code Generation -> Buffer Security check,该如何解决
- 请问个EF code first DbContext有关问题
- 顶者有分!Code First 共用数据库的有关问题
- csnd如何发图片!发代码如何让代码变色![code=C#][/code]如何用
- Code-First POCO有关问题
- CKFinder 加入验证之后,无法上传文件,出现HTTP Error: status code 302. I/O Error: Error #2038. 异常
- Event code: 3005 是咋回事呢
- EF Code First设置int主键初始值的有关问题
- asp.net entity framework code first用途?该如何解决
- asp.net entity framework code first 更新数据库?解决思路
- EF Code First,entity framework.数据表发生改变后如何避免
- 为什么总是出现“MSDTC 事务的导入失败: Result Code = 0x8004d00e。”错误