新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 自制汉字取模软件,学嵌入式的要看

自制汉字取模软件,学嵌入式的要看

作者:时间:2012-08-10来源:网络收藏

学嵌入式开发这么长时间来一直都在使用别人的取模软件,很希望有自己的取模软件。

今天晚上读了一下的文章做程序如下。希望对无协嵌入式开发有帮助

在计算机中英文一般使用 ASCII 码来表示,而使用的是扩展 ASCII 码,用两个ASCII码来表示一个汉字。一个ASCII码占用一个字节,所有在存储时英文是占用一个字节,而汉字占用两个字节。

扩展 ASCII 码:也就是 ASCII 码的最高位是1的 ASCII 码,一个汉字由两个扩展 ASCII 码组成,第一个扩展 ASCII 码用来存放区码,第二个扩展 ASCII 码用来存放位码。

:在 GB2312-80 标准中,将所有的汉字分为94个区,每个区有94个位可以存放94个汉字,形成了人们常说的,这样总共就有 94*94=8836 个汉字。

字库:汉字数据就是按照这个区位的顺序来存放的,也就是最先存放的是第一个区的汉字阵数据,在每一个区中有是按照位的顺序来存放的。

汉字机内码、国标码和三者之间的关系为:区位码(十进制)的两个字节分别转换为十六进制后加20H得到对应的国标码;机内码是汉字交换码(国标码)两个字节的最高位分别加1,即汉字交换码(国标码)的两个字节分别加80H得到对应的机内码;区位码(十进制)的两个字节分别转换为十六进制后加A0H得到对应的机内码

国标码 由两个扩展ascii码组成

汉字区位码的存放实在扩展 ASCII 基础上存放的,并且将区码和位码都加上了32,然后存放在两个扩展 ASCII 码中。具体的说就是:
汉字的
第一个扩展ASCII码 = 128+32 + 汉字区码
第二个扩展ASCII吗 = 128+32 + 汉字位码

程序要用的字库HZK16

点击浏览下一页

程序如下
#include "stdio.h"
#includeiostream>
using namespace std;

void getCode(unsigned char str[],unsigned char data[]);

void main()
{

unsigned char str[] = {"王挺帅"};
unsigned char data[32];
for(int m = 0;m 1;m++){
getCode(str+m*2,data);


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭