某汉字的GB2312编码是怎么来的?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/jinjiankang/article/details/94648806

国家标准《信息交换用汉字编码字符集 基本集 GB 2312-80》里预先定义了形如下图的汉字及其区位码对照关系,内含6763个汉字,也可以在线查询
在这里插入图片描述
左上角的“32”代表“区码”,10进制。“李”字横、纵坐标“78”代表“位码”,10进制。合起来讲就是,“李”字的区位码是3278,10进制。

根据下列规则可以将某汉字的区位码转为GB2312编码:

  1. 将区码由十进制转化为十六进制。
  2. 将所得十六进制加上A0,得到GB2312编码的高字节。
  3. 将位码由十进制转化为十六进制。
  4. 将所得十六进制加上A0,得到GB2312编码的低字节。
  5. 组合区码、位码的十六进制数值,区码在高字节,位码在低字节。
  6. 得到最终的GB2312编码。

以“李”字为例,推到过程如下:

  1. 将区码32转化为0x20。
  2. 加上0xA0为0xC0。
  3. 将位码78转化为0x4E。
  4. 加上0xA0为0xEE。
  5. 组合区和位,为0xC0EE。
  6. 得到“李”字的GB2312编码为0xC0EE。通过在线工具可以验证我们的结果。

猜你喜欢

转载自blog.csdn.net/jinjiankang/article/details/94648806