日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

發布時間:2025/6/15 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式系统中对汉字的处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

如果包括的漢字庫較完整

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

對于包含較完整漢字庫的系統而言,?我們可以以上述規則計算字模的位置。


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

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

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

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

? ? ? ? ? ? ? ? ?定義結構體:?

? ? ? ? ? ? ? ? ? typedef struct _wide_unicode_font16x16?{?WORD value; /* 內碼 */?BYTE data[32]; /* 字模點陣 */?}Unicode;?#define CHINESE_CHAR_NUM … /* 漢字數量 */?

? ? ? ? ? ? ? ? ? 字模的存儲用數組:?

? ? ? ? ? ? ? ? ? Unicode chinese[CHINESE_CHAR_NUM] =?{?{?EX_FONT_CHAR("業")?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}?}?}?

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。