日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

C深入理解編程中的字符編碼 c語言中字符串的各種指令

所謂字符編碼方案 , 就是把要編碼的符號(hào)按順序編號(hào) , 統(tǒng)一用一個(gè)序號(hào)表示 。當(dāng)然 , 編碼時(shí)會(huì)適當(dāng)考慮分類原則 , 即盡量把同類字符放在一起 , 以相同的二進(jìn)制開頭 。比如ASCII的a-b分別對(duì)應(yīng)十進(jìn)制序列號(hào):97-122 , 97的二進(jìn)制是0110001 。
對(duì)于字符的數(shù)據(jù)表示 , 使用編碼方案(字符用序列號(hào)編碼) , 對(duì)于字符的輸出 , 通常用點(diǎn)陣圖形輸出 。對(duì)于輸入 , 英文比較簡(jiǎn)單 , 按鍵盤就可以輸入 , 而中文不能直接用編碼方案的序號(hào)來輸入 , 因?yàn)椴粔蛑庇^ , 不方便記憶和操作 。因此 , 出現(xiàn)了不同的輸入方案 , 如吳彼和拼音 。儲(chǔ)物呢?簡(jiǎn)單的方法當(dāng)然是存儲(chǔ)編碼所需的最大字節(jié)數(shù)(序列號(hào)) , 但是對(duì)于需要多個(gè)字節(jié)的編碼方案 , 前面部分存儲(chǔ)編碼(序列號(hào))顯然不需要最大字節(jié)數(shù) , 所以對(duì)于多字節(jié)編碼方案 , 往往會(huì)按照一定的規(guī)則創(chuàng)建另一套存儲(chǔ)方案 , 然后根據(jù)規(guī)則進(jìn)行適當(dāng)?shù)霓D(zhuǎn)換 。這是一種隨時(shí)間變化空的做法 。
1 ASCII因?yàn)橛?jì)算機(jī)最早是美國(guó)人發(fā)明的 , 而且美國(guó)人用的符號(hào)比較少 , 一個(gè)字節(jié)(8位 , 0-11111111)就夠了 。這是ASCII碼 , 包括大小英文字母 , 數(shù)字 , 還有一些可打印或不可打印的符號(hào) , 總共128:

C深入理解編程中的字符編碼 c語言中字符串的各種指令


2 GB2312中國(guó)使用的漢字有幾萬個(gè) , 常用漢字也有幾千個(gè) 。一個(gè)字節(jié)遠(yuǎn)遠(yuǎn)不夠 。(兩個(gè)16位字節(jié)(0x0-0xffff)理論上可以表示2 ^ 16 = 65536個(gè)字符 。)編碼需要兼容ASCII , 易于使用 。
2.1兼容ASCII 。
2.2將我們添加的字節(jié)映射為兩個(gè)大于127的字節(jié)(確保兩個(gè)字節(jié)的最高有效位都是1);
【C深入理解編程中的字符編碼 c語言中字符串的各種指令】2.3如果發(fā)現(xiàn)最高位是0 , 那么就可以確定這個(gè)字節(jié)映射到ASCII字符 , 那么就只讀取一個(gè)字節(jié) , 然后查找ASCII表 , 解析成ASCII表對(duì)應(yīng)的字符 。如果發(fā)現(xiàn)最高位是1 , 則可以確定該字節(jié)映射到GB2312的字符 。然后連續(xù)讀取兩個(gè)字節(jié) , 再查GB2312 , 然后解析成對(duì)應(yīng)的字符 。
2.4 ASCII重映射ASCII的兩個(gè)字節(jié) , 稱為全角字符 , 而自身ASCII的一個(gè)字節(jié)映射的字符稱為半角字符 。
2.5之后加入了一些字符形成GBK , 然后加入了一些字符形成GB18030 , 都是向前兼容的 。
2.6 ANSI在不同的操作系統(tǒng)中對(duì)應(yīng)不同的字符碼 , 比如簡(jiǎn)體中文操作系統(tǒng)對(duì)應(yīng)GB2312 , 繁體對(duì)應(yīng)Big5 , 日文操作系統(tǒng)對(duì)應(yīng)JIS 。
GB 2312標(biāo)準(zhǔn)包含6763個(gè)漢字 , 其中一級(jí)漢字3755個(gè) , 二級(jí)漢字3008個(gè) 。同時(shí) , GB 2312包含拉丁字母、希臘字母、日語平假名和片假名字母、俄語西里爾字母等682個(gè)全角字符 。
GB 2312的出現(xiàn)基本滿足了計(jì)算機(jī)處理漢字的需要 , 其漢字已經(jīng)覆蓋了中國(guó)大陸99.75%的使用頻率 。
GB 2312無法處理姓名和古文中的生僻字 , 導(dǎo)致了GBK和GB 18030漢字字符集的出現(xiàn) 。
GB 2312以代碼0xA1A0開頭(10100001 10100000):
C深入理解編程中的字符編碼 c語言中字符串的各種指令


3 unicode如果每個(gè)國(guó)家都有自己的一套字符編碼方案 , 自然會(huì)給信息交流帶來不便 。因此 , 國(guó)際標(biāo)準(zhǔn)化組織制定了統(tǒng)一的unicode字符編碼方案 , 盡可能地包含所有國(guó)家使用的字符 。

推薦閱讀