机内码问题

下列编码中,正确的汉字机内码是
A) 6EF6H
B) FB6FH
C) A3A3H
D) C97CH
怎么看的

答案应该是(C)
但是实际上(C)出来的也不是 汉字
而是 符号 "#"(GBK下)

另为这个题目本身应该有点问题.
上面应该写明这个在GB码的下的编码原则.
否则不能辨别

GBK下的原则是汉字的..内码的每字节都是>A0H的
A->6E
B->6F
D->7C
这些都不是
只能是C

但是unicode不是这样编码的,不能这样辨别..
不过按照题目的意思 应该是非unicode吗

西文是拼音文字,基本符号比较少,编码比较容易,因此,在一个计算机系统中,输入、内部处理、存储和输出都可以使用同一代码。汉字种类繁多,编码比拼音文字困难,因此在不同的场合要使用不同的编码。通常有4种类型的编码,即输入码、国标码、内码、字形码。

① 输入码

输入码所解决的问题是如何使用西文标准键盘把汉字输入到计算机内。有各种不同的输入码,主要可以分为三类:数字编码、拼音编码和字编型码。

● 数字编码。就是用数字串代表一个汉字,常用的是国标区位码。它将国家标准局公布的6763个两级汉字分成94个区,每个区分94位。实际上是把汉字表示成二维数组,区码、位码各用两位十进制数表示,输入一个汉字需要按4次键。数字编码是惟一的,但很难记住。比如“中”字,它的区位码以十进制表示为5448(54是区码,48是位码),以十六进制表示为3630(36是区码,30是位码)。以十六进制表示的区位码不是用来输入汉字的。

● 拼音编码。是以汉字读音为基础的输入方法。由于汉字同音字太多,输入后一般要进行选择,影响了输入速度。

● 字型编码。是以汉字的形状确定的编码,即按汉字的笔画部件用字母或数字进行编码。如五笔字型、表形码,便属此类编码,其难点在于如何拆分一个汉字。

② 国标码

又称为汉字交换码,在计算机之间交换信息用。用两个字节来表示,每个字节的最高位均为0,因此可以表示的汉字数为214=16384个。将汉字区位码的高位字节、低位字节各加十进制数32(即十六进制数的20),便得到国标码。例如“中”字的国标码为8680(十进制)或7468(十六进制)。这就是国家标准局规定的GB2312—80信息交换用汉字编码集。

③ 内码

汉字内码是在设备和信息处理系统内部存储、处理、传输汉字用的代码。无论使用何种输入码,进入计算机后就立即被转换为机内码。规则是将国标码的高位字节、低位字节各自加上128

为了统一表示世界各国的文字,1993年国际标准化组织公布了“通用多八位编码字符集”的国际标准ISO/IEC 10646,简称UCS(Universal Code Set),它为包括汉字在内的各种正在使用的文字规定了统一的编码方法。该标准使用4个字节来表示一个字符。其中,一个字节用来编码组,因为最高位不用,故总共表示128个组。一个字节编码平面,总共有256个平面,这样,每一组都包含256个平面。在一个平面内,用一个字节来编码行,因而总共有256行。再用一个字节来编码字位,故总共有256个字位。一个字符就被安排在这个编码空间的一个字位上。例如ASCII字符“A”,它的ASCII为41H,而在UCS中的编码则为00000041H,即位于00组、00面、00行的第41H字位上。又如汉字“大”,它在GB2312中的编码为3473H,而在UCS中的编码则为00005927H,即在00组、00面、59H行的第27H字位上。4个字节的编码足以包容世界上所有的字符,同时也符合现代处理系统的体系结构。

④ 字形码

表示汉字字形的字模数据,因此也称为字模码,是汉字的输出形式。通常用点阵、矢量函数等表示。用点阵表示时,字形码指的就是这个汉字字形点阵的代码。根据输出汉字的要求不同,点阵的多少也不同。简易型汉字为16´16点阵、提高型汉字为24´24点阵、48´48点阵等。现在我们以24´24点阵为例来说明一个汉字字形码所要占用的内存空间。因为每行24个点就是24个二进制位,存储一行代码需要3个字节。那么,24行共占用3´24=72个字节。计算公式:每行点数/8´行数。依此,对于48´48的点阵,一个汉字字形需要占用的存储空间为48/8´48=6´48=288个字节。
(十进制)或80(十六进制)。例如,“中”字的内码以十六进制表示时应为F4E8。这样做的目的是使汉字内码区别于西文的ASCII,因为每个西文字母的ASCII的高位均为0,而汉字内码的每个字节的高位均为1。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-26
汉字占两个字节你是知道的,关于机内码,国际码之间的转换我给你说说,你把这个关系记清楚就行了,国标码=区位码+2020H,汉字机内码=国际码+8080H。首先将区位码转换成国际码,然后将国际码加上8080H,即得机内码。
简单说就是在国标码GB2312中的两个字节的最高位
把0变成1
变成1就是直接假8080H就可以了,就是机内码=国标码+8080H
,还有个补充,你应该知道这些数字在转换的时候他必须是十六进制的才行
第2个回答  2009-01-20
汉字的第15位应该都是1吧?(你知道哪位是第15位吧?)
6EF6=0110111011110110
FB6F=1111101101101111
A3A3=1010001110100011
C97C=1100100101111100
这样做是为了与ASCII区分开
ASCII标准码的第7位都是0

答案是BCD不?
第3个回答  2009-01-20
正确的汉字机内码是B、C、D。汉字机内码的二进制码最高位为1,
想看这些字的方法,先CMD到DOS下,DEBUG(回车):
e100 6E F6 20 FB 6F 20 A3 A3 20 C9 7C 0D 0A
rcx
10
n \hanzhi.txt
w

q

到当前根目录下,从WINDOWS资源管理器中打开hanzhi.txt,你就能看到这几个字了:
n? 鹢(FB6FH) #(A3A3H) 蓔(C97CH)。
相似回答