導航:首頁 > 編程大全 > 漢字字模資料庫

漢字字模資料庫

發布時間:2022-08-19 14:21:31

『壹』 請介紹漢字輸入碼(外碼)、內碼、漢字型檔的概念

信息編碼各國有各國不同的編碼,國際上統一使用的編碼為ASCII(美國標准信息交換代碼),我國使用的有國標碼BG(中文),和BIG5(中文繁體)兩種。(1)國標碼:是指我國1980年公布的「信息交換漢字編碼字元集」,代號為「GB2312-80」。由連續的兩個位元組組成。
(2)機內碼:在計算機內表示漢字的代碼是漢字機內碼,漢字機內碼由國標碼演化而來,把表示國標碼的兩個位元組的最高位分別加「1」,就變成漢字機內碼。
(3)輸入碼: 漢字輸入碼是指直接從鍵盤輸入的各種漢字輸入方法的編碼,屬於外碼。
(4)字型點陣碼:用點陣方式來構造漢字字型,然後存儲在計算機內,構成漢字字模庫。目的是為了能顯示和列印漢字。編碼的轉換舉例
漢字 區位碼 16進制 國標碼 機內碼
文 4636 2E24H 4E44H CEC4H
「文」的區位碼為4636,區碼和位碼分別用16進製表示即為「2E24H」, 0010 1110 0010 0100轉換成國標碼「4E44H」,0100 1110 0100 0100機內碼為「CEC4H」, 1100 1110 1100 0100
國家標准信息交換用漢字字元集GB2312-80收錄漢字6763個,按照漢字的使用頻度分為兩級,其中一級漢字3755個,二級漢字3008個。16至55區是一級漢字,56至87區是二級漢字。

『貳』 所有漢字的字型以點陣字模的形式儲存在哪裡

所有漢字的字型以點陣字模的形式儲存在字模庫文件里。

計算機漢字信息處理包括漢字輸入、漢字顯示、漢字輸出等,用於顯示的漢字點陣一般為16×16,每個漢字佔32個位元組,因此為實現近8000個漢字在計算機上顯示,必須為它配一個龐大的漢字點陣字模庫(簡稱字型檔)。

漢字點陣在漢字型檔中的地址計算公式:

漢字型檔種類繁多,但都是按照區位的順序排列的。前一個位元組為該漢字的區號,後一個位元組為該字的位號。每一個區記錄94個漢字,位號則為該字在該區中的位置。

計算公式為: (94*(區號-1)+位號-1)一個漢字字模佔用位元組數 對於16點陣的字型檔,1個漢字字模佔用32位元組。對於12點陣字型檔,字摸每行的位數均補齊為8的整數倍,於是實際該字型檔的位長度是16*12,即佔用24位元組.在計算機中常用的漢字編碼為漢字內碼,不是區位碼,需要進行轉換。

『叄』 在漢字型檔中尋找漢字字模時採用_________碼 A、地址 B、輸入 C、機內 D、字形

選A。在漢字型檔中尋找漢字字模時採用__地址__碼。
漢字輸入碼轉換為機內碼之後,再經轉換處理為地址碼,才能得到字形碼,最終輸出得到漢字。

『肆』 關於計算機漢字的編碼,計算機中的漢字型檔中大概有多少個

電腦漢字的編碼,電腦漢字型檔中的漢字數量由字元集決定的,GB2312的字元集約6000多,GBK約1-2萬,GB18030約6萬。
電腦內部漢字信息的存儲運算的代碼有四種:輸入碼、國標碼、內碼和字型碼。
輸入碼:包括拼音編碼和字型編碼。微軟拼音ABC就是拼音編碼,五筆字型輸入法就是字型編碼。
國標碼:又稱為漢字交換碼,在計算機之間交換信息用。用兩個位元組來表示,每個位元組的最高位均為0,因此可以表示的漢字數為2的14次冪,就是16384個。將漢字區位碼的高位位元組、低位位元組各加十進制數32(即十六進制數的20),便得到國標碼。例如「中」字的國標碼為8680(十進制)或7468(十六進制)。
內碼:漢字內碼是在設備和信息處理系統內部存儲、處理、傳輸漢字用的代碼。無論使用何種輸入碼,進入計算機後就立即被轉換為機內碼。規則是將國標碼的高位位元組、低位位元組各自加上128(十進制)或80(十六進制)。例如,「中」字的內碼以十六進製表示時應為F4E8。這樣做的目的是使漢字內碼區別於西文的ASCII,因為每個西文字母的ASCII的高位均為0,而漢字內碼的每個位元組的高位均為1。
字型碼:表示漢字字形的字模數據,因此也稱為字模碼,是漢字的輸出形式。通常用點陣、矢量函數等表示。用點陣表示時,字形碼指的就是這個漢字字形點陣的代碼。根據輸出漢字的要求不同,點陣的多少也不同。簡易型漢字為16′16點陣、提高型漢字為24′24點陣、48′48點陣等。如果是24′24點陣,每行24個點就是24個二進制位,存儲一行代碼需要3個位元組。那麼,24行共佔用3′24=72個位元組。計算公式:每行點數/8′行數。依此,對於48′48的點陣,一個漢字字形需要佔用的存儲空間為48/8′48=6′48=288個位元組。

『伍』 誰能解釋一下漢字字模的作用是什麼

b4,b1,b0 =字型檔A在位平面2 中的區號b5,b3,b2 =字型檔B在位平面2 中的區號*/EGA b4,b5沒用AX=1103h如:BL的b4,b1,b0=1,1,1 則表示字型檔A將選擇7號區的字型檔。此時,屬性位元組的B3位用於選擇使用到的字元集(A或B,為1是使用字元集A)。若只激活一種字元集(A、B的值相同),屬性位元組的b3位可用作選擇字元的高亮度。現在,若我們將西文字元字型檔放置於平面2的n區號,中文字元字型檔放置於平面2的m區號(m<>n),便可以圓滿在西文文本方式下顯示中西混合字串,而且互不幹涉。這種漢字顯示的方式的優點就是顯示速度很快,缺點就是能顯示的漢字太少,在這里我不建議大家使用!相關的程序請在本論壇找qb45寫的帖子!三,圖形模式下顯示漢字既然是圖形界面,只要把漢字當成一幅畫,畫在顯示屏上不就可以了。關鍵在於如何取得漢字的圖形,在這里漢字圖形有兩種格式,一個是點陣,一個是矢量,一個16*16的點陣字模是記載的16*16的點陣數據。而矢量字型檔記載的是公式,一個字比如橫撇的都是用公式來描述,這樣可以很方便的進行無及縮放,這里我主要講講點陣字型檔,因為矢量字型檔我也沒有弄過!那些中文版的DOS顯示漢字的方式也就是在圖形界面下畫出漢字的,它們實際已經提供了現成的點陣字型檔文件。例如常用的16×16點陣HZK16文件,12×12點陣HZK12文件等等,這些文件包括了GB2312字元集中的所有漢字。現在只要弄清漢字點陣在字型檔文件中的格式,就可以按照自己的意願去顯示漢字了。下面以HZK16文件為例,分析取得漢字字模的方法。HZK16文件是按照GB 2312-80標准,也就是通常所說的國標碼或區位碼的標准排列的。國標碼分為 94個區(Section),每個區 94 個位(Position),所以也稱為區位碼。其中01~09 區為符號、數字區,16~87 區為漢字區。而10~15 區、88~94 區是空白區域。如何取得漢字的區位碼呢?在計算機處理漢字和ASCII字元時,使每個ASCII字元佔用1個位元組,而一個漢字佔用兩個位元組,其值稱為漢字的內碼。其中第一個位元組的值為區號加上32(20H),第二個位元組的值為位號加上32(20H)。為了與ASCII字元區別開,表示漢字的兩個位元組的最高位都是1,也就是兩個位元組的值都又加上了128(80H)。這樣,通過漢字的內碼,就可以計算出漢字的區位碼。具體算式如下:qh=c1-32-128=c1-160 wh=c2-32-128=c2-160或 qh=c1-0xa0 wh=c2-0xa0qh,wh為漢字的區號和位號,c1,c2為漢字的第一位元組和第二位元組。根據區號和位號可以得到漢字字模在文件中的位置:location=(94*(qh-1)+(wh-1))*一個點陣字模的位元組數。那麼一個點陣字模究竟佔用多少位元組數呢?我們來分析一下漢字字模的具體排列方式。例如要顯示的「漢」字,使用16×16點陣。字模中每一點使用一個二進制位(Bit)表示,如果是1,則說明此處有點,若是0,則說明沒有。這樣,一個16×16點陣的漢字總共需要16*16/8=32個位元組表示。字模的表示順序為:先從左到右,再從上到下,也就是先畫左上方的8個點,再是右上方的8個點,然後是第二行左邊8個點,右邊8個點,依此類推,畫滿16×16個點。 4、提取漢字的字模顯示漢字是把從文件提取的字模畫出來,而需要字模就是把提取的數據輸出到文件!對於其它點陣字型檔文件,則也是使用類似的方法進行顯示。例如HZK12,但是HZK12文件的格式有些特別,如果你將它的字模當作12*12位計算的話,根本無法正常顯示漢字。因為字型檔設計者為了使用的方便,字模每行的位數均補齊為8的整數倍,於是實際該字型檔的位長度是16*12,每個字模大小為24位元組,雖然每行都多出了4位,但這4位都是0(不顯示),並不影響顯示效果。還有UCDOS下的HZK24S(宋體)、HZK24K(楷體)或HZK24H(黑體)這些列印字型檔文件,每個字模佔用24*24/8=72位元組,不過這類大字模漢字型檔為了列印的方便,將字模都放倒了,所以在顯示時要注意把橫縱方向顛倒過來就可以了。這樣我們就完全清楚了如何得到漢字的點陣字模,這樣就可以在程序中隨意的顯示漢字了。在編程中,漢字的的顯示速度的瓶徑主要在讀取字模和畫圖語句的效率方面,由於漢字字摸是以文件的方式保存在磁碟上的,那麼每次讀一個字都會在磁碟上操作,極大的降低了漢字的顯示速度!在你程序中使用的漢字數目不多,也可以不必總是在程序里帶上幾百K的字型檔文件,也許你的程序才只有幾十K。這樣可以事先將所需要顯示的漢字字模提取出來,一次讀入內存,這樣速度就能得到極大的提高,當然如果你要用到所有的漢字這個方法就不行了,不過,你可以象UCDOS那樣,把字模放到EMS高端內存中,從內存中讀總是比磁碟上快幾個數量級!在畫圖語句上,可以自己寫,不用語言帶的那個畫圖語句,直接寫顯存的速度是最快的!詳細的自己研究!
OPEN "hzk16" FOR BINARY AS #1IF LOF(1) = 0 THEN PRINT "沒有漢字型檔! ":ENDSCREEN 12hz1$ = "漢字顯示的演示"hz 1, 100, hz1$, 11SUB hz (x0, y0, hz.word$, hzcol)REM 顯示漢字的子程序savex0 = x0: savey0 = y0FOR now = 1 TO LEN(hz.word$)qu = ASC(MID$(hz.word$, now, 1))IF qu >= 161 THENnow = now + 1IF now > LEN(hz.word$) THEN EXIT FORwei = ASC(MID$(hz.word$, now, 1))ps& = ((qu - 161) * 94& + wei - 161) * 32& + 1SEEK #1, ps&zimo$ = INPUT$(32, 1)num = 1FOR y = 0 TO 15chr1$ = MID$(zimo$, num, 1)num = num + 1chr2$ = MID$(zimo$, num, 1)num = num + 1chr3$ = chr2$ + chr1$LINE (x0, y0 + y)-STEP(15, 0), hzcol, , CVI(chr3$)NEXT yx0 = x0 + 16ELSESEEK #2, qu * 16zimo$ = INPUT$(16, 2)FOR y = 1 TO 16zmchr$ = CHR$(0) + MID$(zimo$, y, 1)LINE (x0, y0 + y)-STEP(15, 0), hzcol, , CVI(zmchr$)NEXT yx0 = x0 + 8END IFNEXT nowx0 = savex0: y0 = savey0END SUB

閱讀全文

與漢字字模資料庫相關的資料

熱點內容
蘋果5外屏都包括什麼 瀏覽:580
好看的愛情電影60分鍾左右的 瀏覽:453
P開頭 網站 瀏覽:98
學習計算機編程前景如何 瀏覽:930
寶馬gt大燈怎麼編程 瀏覽:755
北郵網路技術實踐 瀏覽:731
u盤不能讀取此卷無法識別的文件 瀏覽:300
讓管理會計信息化插上大數據翅膀 瀏覽:824
mysql每天取一條資料庫 瀏覽:606
schdoc是什麼文件 瀏覽:391
html源代碼下載 瀏覽:726
skype官方下載linux 瀏覽:496
新僵屍先生最後那個小孩去哪了 瀏覽:718
主角穿越三體開局創造暗位面 瀏覽:600
5s手機qq刪除最近文件在哪裡 瀏覽:404
在線免費網站看 瀏覽:471
右鍵添加程序 瀏覽:388
最新網址一;點此打開網站>>> 瀏覽:227
java創始人 瀏覽:472
京批網app叫什麼 瀏覽:576

友情鏈接