入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

如何将16进制转化成汉字

创建时间:2014-04-07 投稿人: 浏览次数:5283
国标码是一个四位十六进制数,每个国标码都对应着一个唯一的汉字或符号
国标编码就是中华人民共和国信息交换汉字编码标准(GB2312-80),
在此标准中制定了每一个汉字及非汉字符号的编码。规定将汉字字符分为87个区,
每个区有94个汉字(94位),因此共制定了87x94=8178个汉字、字符。
每一个字符的编码由2个字节(Byte, 一个字节有8位--Bit, 可以有256种不同表示)构
成(分别称为高字节和低字节),其值分别为其区位码值各加上32(既16进制的
20H),方便起见把这称作国标码,则国标码所覆盖的范围为2121H-777EH,
如中国的“中”字位于54区48位,其国标码就是5650H。当想在由西方人发明的
计算机中使用汉字时,由于国标码的范围与计算机中使用的 ASCII 码(American Standard 
Code for Information Interchange,美国信息交换标准码,只用了一个字节中的低7位,
范围是32-126这95个)重叠,无法分出哪个是中文哪个是西文,于是规定将国标码的高低
字节的最高位均置1(Set the MSB,相当于加上128--16进制的80H),来使之区分于 

ASCII 码。

2.交换码

  计算机内部处理的信息,都是用二进制代码表示的,汉字也不例外。而二进制代码使用起来是不方便的,于是需要采用信息交换码。中国标准总局1981年制定了中华人民共和国国家标准GB2312--80《信息交换用汉字编码字符集--基本集》,即国标码。

  区位码是国标码的另一种表现形式,把国标GB2312--80中的汉字、图形符号组成一个94×94的方阵,分为94个“区”,每区包含94个“位”,其中“区”的序号由01至94,“位”的序号也是从01至94。94个区中位置总数=94×94=8836个,其中7445个汉字和图形字符中的每一个占一个位置后,还剩下1391个空位,这1391个位置空下来保留备用。

所以汉字的16进制码范围是  0x8181----0xdede ,其中包括了未编码的1391个位置

  3.机内码

  根据国标码的规定,每一个汉字都有了确定的二进制代码,在微机内部汉字代码都用机内码,在磁盘上记录汉字代码也使用机内码


下面代码可以打印出编码表
////////////
/////////// i 区码  j 位码
for (int i=0;i<95;i++)
 for (int j=0;j<95;j++)
   printf("%2d%02d %c%c%",i,j,i+0x80,j+0x80);



定义个字符数组,把编码赋给数组。

char ch[5] = { 0xb0,0xb2,0xbb,0xd5 };
printf("%s",ch);

//输出 安徽

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。