ASCII 碼使用指定的7 位或8 位二進(jìn)制數(shù)組合來(lái)表示128 或256 種可能的字符。標(biāo)準(zhǔn)ASCII 碼也叫基礎(chǔ)ASCII碼,使用7 位二進(jìn)制數(shù)(剩下的1位二進(jìn)制為0)來(lái)表示所有的大寫(xiě)和小寫(xiě)字母,數(shù)字0 到9、標(biāo)點(diǎn)符號(hào), 以及在美式英語(yǔ)中使用的特殊控制字符。其中:
0~31及127(共33個(gè))是控制字符或通信專用字符(其余為可顯示字符),如控制符:LF(換行)、CR(回車(chē))、FF(換頁(yè))、DEL(刪除)、BS(退格)、BEL(響鈴)等;通信專用字符:SOH(文頭)、EOT(文尾)、ACK(確認(rèn))等;ASCII值為8、9、10 和13 分別轉(zhuǎn)換為退格、制表、換行和回車(chē)字符。它們并沒(méi)有特定的圖形顯示,但會(huì)依不同的應(yīng)用程序,而對(duì)文本顯示有不同的影響。
32~126(共95個(gè))是字符(32是空格),其中48~57為0到9十個(gè)阿拉伯?dāng)?shù)字。
65~90為26個(gè)大寫(xiě)英文字母,97~122號(hào)為26個(gè)小寫(xiě)英文字母,其余為一些標(biāo)點(diǎn)符號(hào)、運(yùn)算符號(hào)等。
同時(shí)還要注意,在標(biāo)準(zhǔn)ASCII中,其最高位(b7)用作奇偶校驗(yàn)位。所謂奇偶校驗(yàn),是指在代碼傳送過(guò)程中用來(lái)檢驗(yàn)是否出現(xiàn)錯(cuò)誤的一種方法,一般分奇校驗(yàn)和偶校驗(yàn)兩種。奇校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)必須是奇數(shù),若非奇數(shù),則在最高位b7添1;偶校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)必須是偶數(shù),若非偶數(shù),則在最高位b7添1。
后128個(gè)稱為擴(kuò)展ASCII碼。許多基于x86的系統(tǒng)都支持使用擴(kuò)展(或“高”)ASCII。擴(kuò)展ASCII 碼允許將每個(gè)字符的第8 位用于確定附加的128 個(gè)特殊符號(hào)字符、外來(lái)語(yǔ)字母和圖形符號(hào)。
ASCII是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語(yǔ)和其他西歐語(yǔ)言。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),并等同于國(guó)際標(biāo)準(zhǔn)ISO/IEC 646。
在計(jì)算機(jī)中,所有的數(shù)據(jù)在存儲(chǔ)和運(yùn)算時(shí)都要使用二進(jìn)制數(shù)表示(因?yàn)橛?jì)算機(jī)用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個(gè)字母(包括大寫(xiě))、以及0、1等數(shù)字還有一些常用的符號(hào)(例如*、#、@等)在計(jì)算機(jī)中存儲(chǔ)時(shí)也要使用二進(jìn)制數(shù)來(lái)表示,而具體用哪些二進(jìn)制數(shù)字表示哪個(gè)符號(hào),當(dāng)然每個(gè)人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那么大家就必須使用相同的編碼規(guī)則,于是美國(guó)有關(guān)的標(biāo)準(zhǔn)化組織就出臺(tái)了ASCII編碼,統(tǒng)一規(guī)定了上述常用符號(hào)用哪些二進(jìn)制數(shù)來(lái)表示。
美國(guó)標(biāo)準(zhǔn)信息交換代碼是由美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(American National Standard Institute , ANSI )制定的,標(biāo)準(zhǔn)的單字節(jié)字符編碼方案,用于基于文本的數(shù)據(jù)。起始于50年代后期,在1967年定案。它最初是美國(guó)國(guó)家標(biāo)準(zhǔn),供不同計(jì)算機(jī)在相互通信時(shí)用作共同遵守的西文字符編碼標(biāo)準(zhǔn),它已被國(guó)際標(biāo)準(zhǔn)化組織(International Organization for Standardization, ISO)定為國(guó)際標(biāo)準(zhǔn),稱為ISO 646標(biāo)準(zhǔn)。適用于所有拉丁文字字母。
ASCII與16進(jìn)制互轉(zhuǎn)c例程
//函數(shù)名:AscToHex()
//功能描述:把ASCII轉(zhuǎn)換為16進(jìn)制
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;
}
//函數(shù)名:HexToAsc()
//功能描述:把16進(jìn)制轉(zhuǎn)換為ASCII
unsigned char HexToAsc(unsigned char aChar)
{
if((aChar》=0x30) &&(aChar《=0x39))
aChar -= 0x30;
else if((aChar》=0x41) && (aChar《=0x46))//大寫(xiě)字母
aChar -= 0x41; //0x37
else if((aChar》=0x61) && (aChar《=0x66))//小寫(xiě)字母
aChar -= 0x61; //0x57
else
aChar = 0xff;
return aChar;
}
十六進(jìn)制與ASCII碼的互轉(zhuǎn)(C語(yǔ)言)
//函 數(shù) 名:CharToHex()
//功能描述:把ASCII字符轉(zhuǎn)換為16進(jìn)制
//函數(shù)說(shuō)明:
//調(diào)用函數(shù):
//全局變量:
//輸 入:ASCII字符
//返 回:16進(jìn)制
[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;
}
//函 數(shù) 名:HexToChar()
//功能描述:把16進(jìn)制轉(zhuǎn)換為ASCII字符
//函數(shù)說(shuō)明: //調(diào)用函數(shù):
//全局變量:
//輸 入:16進(jìn)制
//返 回: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;
}
scii碼轉(zhuǎn)十六進(jìn)制原理
每一個(gè)ascii碼對(duì)應(yīng)了一個(gè)固定的十六進(jìn)制數(shù),這個(gè)值是不變的,在ascii碼表上是可以查的到得。
下面是一張ASCII和16進(jìn)制的對(duì)應(yīng)表:
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136827 -
ASCII
+關(guān)注
關(guān)注
5文章
172瀏覽量
35103 -
16進(jìn)制
+關(guān)注
關(guān)注
1文章
13瀏覽量
8773
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論