电子说
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是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准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标准。适用于所有拉丁文字字母。
//函数名:AscToHex()
//功能描述:把ASCII转换为16进制
unsigned char AscToHex(unsigned char hex)
{
if((hex 》= 0) &&(hex 《= 9))
hex += 0x30;
else if((hex 》= 10) &&(hex 《= 15)) //A-F
hex += 0x41;//0x37
else
hex = 0xff;
return hex;
}
//函数名:HexToAsc()
//功能描述:把16进制转换为ASCII
unsigned char HexToAsc(unsigned char aChar)
{
if((aChar》=0x30) &&(aChar《=0x39))
aChar -= 0x30;
else if((aChar》=0x41) && (aChar《=0x46))//大写字母
aChar -= 0x41; //0x37
else if((aChar》=0x61) && (aChar《=0x66))//小写字母
aChar -= 0x61; //0x57
else
aChar = 0xff;
return aChar;
}
//函 数 名:CharToHex()
//功能描述:把ASCII字符转换为16进制
//函数说明:
//调用函数:
//全局变量:
//输 入:ASCII字符
//返 回:16进制
[cpp] view plain copy/**function: CharToHex()
*** ACSII change to 16 hex
*** input:ACSII
***Return :Hex
**/
unsigned char CharToHex(unsigned char bHex)
{
if((bHex》=0)&&(bHex《=9))
{
bHex += 0x30;
}
else if((bHex》=10)&&(bHex《=15))//Capital
{
bHex += 0x37;
}
else
{
bHex = 0xff;
}
return bHex;
}
//函 数 名:HexToChar()
//功能描述:把16进制转换为ASCII字符
//函数说明: //调用函数:
//全局变量:
//输 入:16进制
//返 回:ASCII字符
[cpp] view plain copyunsigned char HexToChar(unsigned char bChar)
{
if((bChar》=0x30)&&(bChar《=0x39))
{
bChar -= 0x30;
}
else if((bChar》=0x41)&&(bChar《=0x46)) // Capital
{
bChar -= 0x37;
}
else if((bChar》=0x61)&&(bChar《=0x66)) //littlecase
{
bChar -= 0x57;
}
else
{
bChar = 0xff;
}
return bChar;
}
每一个ascii码对应了一个固定的十六进制数,这个值是不变的,在ascii码表上是可以查的到得。
下面是一张ASCII和16进制的对应表:
全部0条评论
快来发表一下你的评论吧 !