知道一个字的区位码和国标码,怎么计算它的机内码

知道一个字的区位码和国标码,怎么计算它的机内码,第1张

GB2312构成一个二维平面,分成94行和94列,行号成为区号,列号成为位号。唯一标识一个汉字

将区位码的位号和分好分别加上32(20H),得到国标交换码

将国标码的两个字节的最高位置1(加128,即80H),得到PC机常用的机内码

汉字的区位码、国标码、机内码有如下关系:

国标码=区位码+2020H

机内码=国标码+8080H

机内码=区位码+A0A0H

汉字机内码双字节,最高位是1;西文字符机内码单字节,最高位是0

区码与位码的取值范围是01H—5EH

国标码的编码范围是2121 H一7E7EH

汉字国标码=区号(十六进制数)+20H位号(十六进制数)+ 20H

汉字机内码=汉字国标码+8080H

一般情况下,给出的区位码是十进制,要转换成16进制;国标码,机内码是16进

制。

另外B,D,O,H分别表示二进制,十进制,八进制,十六进制。

ascii 从惊叹号起到波浪号止(0x21 到 0x7e) 用公式:

int ascii,qw;

qw = ascii - 0x21 + 301;

printf("%04d",qw);

其它码汉字可能不含。或要自己建对应表(用两列数组。例如空白(0x20) qw=0101)

ascii $ 号 用上面公式得 人民币 羊号,ascii波浪号 变 平线。

要自己去找汉字$ 号,汉字波浪号,放入对应表。(也许汉字区位码不含)

现在的程序都是以 Unicode 为内部编码,因此编译器和 *** 作系统都是储存了某个字符的 Unicode Code Point (一个整数),我们想知道这个数字就可以简单地:

String input = "这是一段汉字编码";

for(int i = 0, codePoint =0; i < inputlength(); i+= CharactercharCount(codePoint)) {

   codePoint = inputgetCodePointAt(i);

    Systemoutprintln("Code Point :" + codePoint);

}

在网上搜索 BabelPad 下载,这个工具目前支持到 Unicode 80, 它能告诉你每个字符的 code point 是多少,那个 Unicode character map 能查看字符区块,比如中文在 CJK Unified 区域,韩国人可能还在用 CJK Compatible Ideographs 区块,也就是说电视上的李世石九段围棋高手自己写的“李”可跟中国人写的“李”不是同一个字。

以上就是关于知道一个字的区位码和国标码,怎么计算它的机内码 全部的内容,包括:知道一个字的区位码和国标码,怎么计算它的机内码 、区位码、国标码、机内码各部分的取值范围是什么、ascii码转区位码 汉字的内码可轻而易举的转为区位码. 但是字母的区位码怎么得到字母的机内码就是ascii码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9457906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存