• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    《C程序設(shè)計(jì)》在漢字編碼教學(xué)中的應(yīng)用

    2020-09-22 09:19:04李翠蓮
    關(guān)鍵詞:二進(jìn)制編碼漢字

    李翠蓮

    (呂梁學(xué)院離石師范分校, 山西 呂梁 033000)

    在日常工作生活中,利用各種應(yīng)用軟件進(jìn)行文書編輯時(shí),文字的輸入通常采用各種鍵盤輸入法、利用讀卡機(jī)進(jìn)行轉(zhuǎn)換識(shí)別、語音識(shí)別、現(xiàn)今流行的圖像識(shí)別技術(shù)(利用圖片識(shí)別文字)等輸入法,盡管各種方式的輸入技術(shù)不同,但實(shí)現(xiàn)的核心技術(shù)是漢字編碼。漢字在信息處理系統(tǒng)中,要經(jīng)過編碼、輸入、匹配編碼、傳輸、轉(zhuǎn)化和字符碼輸出環(huán)節(jié),這些環(huán)節(jié)的關(guān)鍵技術(shù)是編碼,漢字編碼技術(shù)現(xiàn)今比較成熟,在現(xiàn)階段仍然采用通過漢字編碼方式作為漢字輸入計(jì)算機(jī)的基本方式。

    一、漢字的特點(diǎn)

    中國漢字的特點(diǎn):總數(shù)超過6萬個(gè)(包括簡化字、繁體字),通過學(xué)者研究規(guī)定常用漢字3000-4000個(gè),但仍比二三十個(gè)英文字母處理要復(fù)雜得多;漢字字形復(fù)雜,有古體、繁體、簡體、正體、異體等字形,筆畫相差大,少的只有一筆,多的多達(dá)36筆,簡化后的字符編碼平均為9.8筆;漢語音節(jié)416個(gè),分聲調(diào)后為1295個(gè),以10000個(gè)漢字為例計(jì)算,每個(gè)不帶音調(diào)的漢字平均24個(gè)以上、帶調(diào)音節(jié)平均7.7個(gè)以上,個(gè)別同音同調(diào)字達(dá)66個(gè)以上,存在大量的同音異字、同字異音,給編碼帶來諸多困難。

    二、漢字編碼

    計(jì)算機(jī)基于二進(jìn)制編碼設(shè)計(jì),漢字在需要進(jìn)行人為編制為二進(jìn)制編碼。我國根據(jù)計(jì)算機(jī)應(yīng)用需求的不同,漢字編碼通常分為輸入碼(也稱外碼)、交換碼(國標(biāo)碼)、機(jī)內(nèi)碼和字形碼。

    (一)輸入碼

    輸入碼通常是用戶利用計(jì)算機(jī)鍵盤輸入到計(jì)算機(jī)中的一組符號(hào)編碼,也就是各種輸入法如搜狗五筆輸入法、微軟拼音輸入法、區(qū)位碼輸入法,輸入碼的編碼要求規(guī)則簡單,易學(xué)易用、操作簡單、重碼率低、輸入速度快,用戶可以根據(jù)自己需要選擇合適的輸入碼。

    (二)交換碼(國標(biāo)碼)

    計(jì)算機(jī)中信息處理均采用二進(jìn)制代碼來表示,漢字也采用二進(jìn)制,由于二進(jìn)制代碼使用不方便,國家標(biāo)準(zhǔn)局制定了漢字編碼的國家標(biāo)準(zhǔn):國家標(biāo)準(zhǔn)GB2312-80(國標(biāo)碼)。國標(biāo)碼將漢字編碼分為兩級(jí):一級(jí)為常用漢字共 3755個(gè),按拼音英文字母順序排列;二級(jí)為次常用漢字共3008個(gè),按部首/筆畫順序排列,這種編碼即區(qū)位碼。

    區(qū)位碼是國標(biāo)碼的一種表現(xiàn)形式,其特點(diǎn)是采用行列式(即二維坐標(biāo)形式,行表示區(qū)、列表示位),這種表示法重碼率低。國標(biāo)GB2312-80中,漢字圖形符號(hào)由94×94組成一個(gè)方陣,共分為94個(gè)“區(qū)”,94個(gè)“位”,區(qū)號(hào)、位號(hào)從01至94進(jìn)行編號(hào)。94個(gè)區(qū)與94個(gè)位共編出總數(shù)為94×94=8836個(gè)編碼,其中規(guī)定7445個(gè)為常用漢字和圖形字符,01-09區(qū)為符號(hào)、數(shù)字區(qū),16-87區(qū)為漢字區(qū),10-15區(qū)、88-94區(qū)為空白區(qū),便于擴(kuò)充和構(gòu)造特殊漢字使用。

    (三)機(jī)內(nèi)碼

    國標(biāo)GB2312-80中規(guī)定,每一個(gè)漢字和圖形符號(hào)都有唯一確定的二進(jìn)制編碼,在計(jì)算機(jī)內(nèi)部和磁盤上記錄漢字和圖形都采用機(jī)內(nèi)碼表示,漢字在計(jì)算機(jī)中采用兩個(gè)字節(jié)處理和存儲(chǔ)機(jī)內(nèi)碼。根據(jù)國標(biāo)GB2312-80中規(guī)定,從區(qū)位碼到機(jī)內(nèi)碼轉(zhuǎn)換算法,區(qū)碼+32和位碼+32轉(zhuǎn)換為國標(biāo)碼,國標(biāo)碼區(qū)碼+128和國標(biāo)碼位碼+128轉(zhuǎn)換為機(jī)內(nèi)碼。

    (四)漢字字形碼

    漢字字型碼用于在輸出設(shè)備進(jìn)行輸出,通常采用矢量和點(diǎn)陣兩種方式表示。

    矢量表示方式以描述漢字字型的輪廓為特征,在輸出漢字時(shí),通過算法計(jì)算漢字字型輪廓,生成所需大小和形狀漢字點(diǎn)陣。采用矢量化字型描述漢字字形,文字大小與顯示器分辨率無關(guān),字形輸出質(zhì)量高,無失真。在Windows中TrueType技術(shù)是矢量漢字字形碼表示方式。

    點(diǎn)陣字型碼采用漢字字型點(diǎn)陣進(jìn)行編碼。根據(jù)漢字輸出的要求不同,點(diǎn)陣字形碼有16*16、24*24、32*32、48*48點(diǎn)陣等等,點(diǎn)陣規(guī)模愈大,輸出字型越清晰美觀,所占存儲(chǔ)空間也越大。

    (五)漢字地址碼

    漢字地址碼為了簡化內(nèi)碼到地址碼轉(zhuǎn)化,它與漢字機(jī)內(nèi)碼是一一對(duì)應(yīng)關(guān)系,是漢字庫存儲(chǔ)字形碼信息的邏輯地址。

    三、《C程序設(shè)計(jì)》實(shí)現(xiàn)區(qū)位碼和漢字互換

    在《計(jì)算機(jī)基礎(chǔ)》課程教學(xué)中,漢字編碼知識(shí)從理論上如何利用二進(jìn)制進(jìn)行漢字編碼及應(yīng)用給學(xué)生進(jìn)行了講解,在實(shí)際教學(xué)中發(fā)現(xiàn),學(xué)生對(duì)該部分理論知識(shí)缺乏直觀認(rèn)識(shí),對(duì)二進(jìn)制理解不透徹,學(xué)習(xí)興趣不高,《計(jì)算機(jī)基礎(chǔ)》不涉及編程內(nèi)容,不能進(jìn)行實(shí)踐驗(yàn)證。C語言編譯簡易、代碼效率高、有豐富的運(yùn)算符,處理低級(jí)存儲(chǔ)器功能強(qiáng)大(字節(jié)處理和位處理能力強(qiáng)大),具有豐富的數(shù)據(jù)類型和強(qiáng)大邏輯控制能力。在《C程序設(shè)計(jì)》課程教學(xué)過程中結(jié)合《計(jì)算機(jī)基礎(chǔ)》課程所學(xué)漢字編碼知識(shí),利用《C程序設(shè)計(jì)》的強(qiáng)大編程功能實(shí)現(xiàn)漢字編碼的驗(yàn)證教學(xué),從而提高學(xué)生學(xué)習(xí)的積極性。具體可以采用如下代碼實(shí)現(xiàn)區(qū)位碼和漢字的互換:

    (一)區(qū)位碼到漢字的轉(zhuǎn)換代碼

    主要算法是:區(qū)機(jī)內(nèi)碼=區(qū)碼+32+128,位機(jī)內(nèi)碼=位碼+32+128,具體代碼如下,其運(yùn)行結(jié)果如圖1所示。

    圖1 區(qū)位碼轉(zhuǎn)化為漢字運(yùn)行結(jié)果

    #include

    void main()

    {

    int quma,weima;//聲明區(qū)號(hào)和位號(hào)兩個(gè)變量

    int qm,wm,count=0;

    for(quma=16;quma<=94;quma++) //利用遍歷算法遍歷區(qū)號(hào)

    for(weima=1;weima<=94;weima++) ////利用遍歷算法遍歷位號(hào)

    {

    qm=quma+32+128; //區(qū)碼+32+128變?yōu)闄C(jī)內(nèi)碼

    wm=weima+32+128; //位碼+32+128變?yōu)闄C(jī)內(nèi)碼

    printf("%c%c",qm,wm);//利用(char)轉(zhuǎn)換強(qiáng)制把區(qū)碼、位碼加160后轉(zhuǎn)換為機(jī)內(nèi)碼

    count++;

    //每行顯示25個(gè)漢字

    if(count%25==0)

    printf(" ");

    }

    }

    (二)漢字到區(qū)位碼的轉(zhuǎn)換代碼

    漢字到區(qū)位碼轉(zhuǎn)換是漢字編碼的逆運(yùn)算,即區(qū)碼=區(qū)機(jī)內(nèi)碼-160,位碼=位機(jī)內(nèi)碼-160,其結(jié)果如圖2所示。

    #include

    #include//字符串處理函數(shù)頭文件

    int main()

    {

    char hanzi[200];//定義存儲(chǔ)字符串?dāng)?shù)組

    int lenHZ;//定義存儲(chǔ)字符串長度變量

    int i; //遍歷字符串?dāng)?shù)組變量

    printf("請輸入漢字,不超過99個(gè): ");

    scanf("%s",hanzi); //輸入字符串

    printf("輸出漢字對(duì)應(yīng)的區(qū)位碼: ");

    lenHZ = strlen(hanzi); //求字符串長度

    //輸出漢字代碼 for(i=0;i

    {

    printf(" ");//格式控制

    printf("%c%c",hanzi[i],hanzi[i+1]);//漢字輸出

    printf(" ");//格式控制

    }

    printf(" ");

    //輸出區(qū)位碼代碼

    for(i=0;i

    {

    //格式控制

    if(i%2==0)

    {

    printf(" ");

    }

    printf("%02d",(unsigned char)(hanzi[i])-160); //字符到區(qū)碼轉(zhuǎn)換

    printf("%02d",(unsigned char)(hanzi[i+1])-160);//字符到位碼轉(zhuǎn)換

    }

    printf(" ");

    }

    四、結(jié)語

    本文利用《計(jì)算機(jī)基礎(chǔ)》課程內(nèi)容中漢字編碼算法,結(jié)合《C程序設(shè)計(jì)》課程強(qiáng)大編程功能,實(shí)現(xiàn)了漢字與區(qū)位碼的互換,使理論與實(shí)踐相結(jié)合,極大提高了學(xué)生學(xué)習(xí)的積極性。該代碼實(shí)現(xiàn)的同時(shí)可以作為實(shí)際應(yīng)用程序:區(qū)位碼查詢軟件。這樣既解決了教學(xué)中存在的不足,又解決了區(qū)位碼查詢問題,提高了區(qū)位碼查詢的效率和準(zhǔn)確率。

    猜你喜歡
    二進(jìn)制編碼漢字
    用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
    基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
    《全元詩》未編碼疑難字考辨十五則
    子帶編碼在圖像壓縮編碼中的應(yīng)用
    電子制作(2019年22期)2020-01-14 03:16:24
    有趣的進(jìn)度
    二進(jìn)制在競賽題中的應(yīng)用
    Genome and healthcare
    漢字這樣記
    漢字這樣記
    一個(gè)生成組合的新算法
    云南省| 平罗县| 维西| 浙江省| 金门县| 博白县| 江源县| 梨树县| 常熟市| 东明县| 汝南县| 钦州市| 阳曲县| 珠海市| 唐海县| 娄烦县| 福海县| 长白| 镇远县| 察隅县| 澄迈县| 芮城县| 定兴县| 海兴县| 涿州市| 西峡县| 正阳县| 桃园市| 鹤庆县| 唐河县| 西平县| 伊宁县| 陆丰市| 洞口县| 平南县| 天水市| 云霄县| 东兰县| 石屏县| 额尔古纳市| 扶沟县|