日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

嵌入式系统中对汉字的处理

發(fā)布時(shí)間:2025/6/15 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式系统中对汉字的处理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ?現(xiàn)在要解決的問題是,嵌入式系統(tǒng)中經(jīng)常要使用的并非是完整的漢字庫(kù),往往只是需要提供數(shù)量有限的漢字供必要的顯示功能。例如,一個(gè)微波爐的LCD上沒有必要提供顯示"電子郵件"的功能;?一個(gè)提供漢字顯示功能的空調(diào)的LCD上不需要顯示一條"短消息",諸如此類。但是一部手機(jī)、小靈通則通常需要包括較完整的漢字庫(kù)。?

如果包括的漢字庫(kù)較完整

如果包括的漢字庫(kù)較完整,那么,由內(nèi)碼計(jì)算出漢字字模在庫(kù)中的偏移是十分簡(jiǎn)單的:漢字庫(kù)是按照區(qū)位的順序排列的,前一個(gè)字節(jié)為該漢字的區(qū)號(hào),后一個(gè)字節(jié)為該字的位號(hào)。每一個(gè)區(qū)記錄94個(gè)漢字,位號(hào)則為該字在該區(qū)中的位置。因此,漢字在漢字庫(kù)中的具體位置計(jì)算公式為:94*(區(qū)號(hào)-1)+位號(hào)-1。?減1是因?yàn)閿?shù)組是以0為開始而區(qū)號(hào)位號(hào)是以1為開始的。只需乘上一個(gè)漢字字模占用的字節(jié)數(shù)即可,即:(94*(區(qū)號(hào)-1)+位號(hào)-??1)*一個(gè)漢字字模占用字節(jié)數(shù),以16*16點(diǎn)陣字庫(kù)為例,計(jì)算公式則為:?(94*(區(qū)號(hào)-1)+(位號(hào)-1))*32。漢字庫(kù)中從該位置起的32字節(jié)信息記錄了該字的字模信息。?

對(duì)于包含較完整漢字庫(kù)的系統(tǒng)而言,?我們可以以上述規(guī)則計(jì)算字模的位置。


? ? ? ? ? ? ? ? ??
如果僅僅是提供少量漢字

? ? ? ? ? ? ? ? ??
但是如果僅僅是提供少量漢字呢?譬如幾十至幾百個(gè)?最好的做法是:?

? ? ? ? ? ? ? ? ? 定義宏:?

? ? ? ? ? ? ? ? ? # define EX_FONT_CHAR(value)?# define EX_FONT_UNICODE_VAL(value) (value),?# define EX_FONT_ANSI_VAL(value) (value),?

? ? ? ? ? ? ? ? ?定義結(jié)構(gòu)體:?

? ? ? ? ? ? ? ? ? typedef struct _wide_unicode_font16x16?{?WORD value; /* 內(nèi)碼 */?BYTE data[32]; /* 字模點(diǎn)陣 */?}Unicode;?#define CHINESE_CHAR_NUM … /* 漢字?jǐn)?shù)量 */?

? ? ? ? ? ? ? ? ? 字模的存儲(chǔ)用數(shù)組:?

? ? ? ? ? ? ? ? ? Unicode chinese[CHINESE_CHAR_NUM] =?{?{?EX_FONT_CHAR("業(yè)")?EX_FONT_UNICODE_VAL(0x4e1a)?{0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0x44, 0x46,?0x24, 0x4c, 0x24, 0x48, 0x14, 0x50, 0x1c, 0x50, 0x14, 0x60,?0x04, 0x40, 0x04, 0x40, 0x04, 0x44, 0xff, 0xfe, 0x00, 0x00,?0x00, 0x00}?},?{?EX_FONT_CHAR("中")?EX_FONT_UNICODE_VAL(0x4e2d)?{0x01, 0x00, 0x01, 0x00, 0x21, 0x08, 0x3f, 0xfc, 0x21, 0x08,?0x21, 0x08, 0x21, 0x08, 0x21, 0x08, 0x21, 0x08,?0x3f, 0xf8, 0x21, 0x08, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,?0x01, 0x00, 0x01, 0x00}?},?{?EX_FONT_CHAR("云")?EX_FONT_UNICODE_VAL(0x4e91)?{0x00, 0x00, 0x00, 0x30, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00,?0x00, 0x0c, 0xff, 0xfe, 0x03, 0x00, 0x07, 0x00,?0x06, 0x40, 0x0c, 0x20, 0x18, 0x10, 0x31, 0xf8, 0x7f, 0x0c,?0x20, 0x08, 0x00, 0x00}?},?{?EX_FONT_CHAR("件")?EX_FONT_UNICODE_VAL(0x4ef6)?{0x10, 0x40, 0x1a, 0x40, 0x13, 0x40, 0x32, 0x40, 0x23, 0xfc,?0x64, 0x40, 0xa4, 0x40, 0x28, 0x40, 0x2f, 0xfe,?0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40,?0x20, 0x40, 0x20, 0x40}?}?}?

要顯示特定漢字的時(shí)候,只需要從數(shù)組中查找內(nèi)碼與要求漢字內(nèi)碼相同的即可獲得字模。如果前面的漢字在數(shù)組中以內(nèi)碼大小順序排列,那么可以以二分查找法更高效的查找到漢字的字模。?這是一種很有效的組織小漢字庫(kù)的方法,它可以保證程序有很好的結(jié)構(gòu)。

總結(jié)

以上是生活随笔為你收集整理的嵌入式系统中对汉字的处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。