国标码为什么要加上32?
汉字机内码的每个字节都大于128,这是为了解决与ASCII码的冲突问题。
GB2312将代码表分为94个区,对应第一字节;每个区94个位,对应第二字节。两个字节的值分别为区号值和位号值加32(20H),因此也称为区位码。
01-09区为符号、数字区;16-87区为汉字区;10-15区、88-94区是有待进一步标准化的空白区。
GB2312将收录的汉字分成两级:
第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;
第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。
因此,GB2312最多能表示6763个汉字。
国标码并不等于区位码,它是由区位码稍作转换得到的,其转换方法为:将十进制的区码和位码转换为十六进制后,分别加上20H,形成国标码。例如:“保”字的国标码为3123H,它是通过1703D -> 1103H -> +20H -> 3123H得到的。
国标码是汉字信息交换的标准编码,但其前后字节的最高位为0,与ASCII码发生冲突。因此,汉字的机内码采用变形国标码,将国标码每个字节加上128,高位改为1,得到B1A3H,这就是“保”字的机内码。
区位码转换为国标码为什么要加十进制数32?
区位码是中国定义的94乘94的一个表。一个字节只用低七位有127种状态,但前32个字符是控制字符。因此,128减去34(控制字符)等于94。这样可供中文使用的是94个状态。
国标码是用来交换的,94行94列的编码加入32,这样行号和列号范围从33到126,避开了控制字符的问题。
在中文输入法状态下,依然会用到这些控制字符。国标码的最高位是0,以避免与控制字符冲突。
实际上可以使用128*128的表格,因为汉字的机内码已经与英文区分开了,直接用区位码和机内码更为方便。
总之,这个问题不需要过多深入理解,重要的是知道加上32是为了避免与英文控制字符冲突。
请问计算机里汉字的国标码在区位码上加32(20H)的用意是什么?
因为前32个区已经被英文字母、符号、特殊字符等占用。
汉字国标码简介
汉字的数字化表示依赖于一种特定的编码方式,称为汉字国标码。这是一种基于二进制的编码系统,每个汉字都有其独特的代码表示。
在官方的汉字代码标准GB2312-80中,规定了6763个常用汉字的二进制编码。每个汉字用两个字节表示,这意味着其完整的数字标识由两部分组成。
GB2312-80将代码表划分为94个区,每个区由94个位组成,这两部分合称为区位码。具体来说,第一字节对应区号,第二字节对应位号,通过分别加32(20H),形成完整的编码。
GB2312的划分中,01-09区用于符号和数字,16-87区用于汉字,10-15区和88-94区尚未完成标准化。
汉字分为两级:第一级3755个常用汉字,第二级3008个次常用汉字,总计6763个汉字。
汉字国标码规定每个汉字用几个字节表示
汉字国标码规定每个汉字用两个字节表示,第一个字节称为“高位字节”,第二个字节称为“低位字节”。
汉字国标码创建于1980年,为每个汉字提供全国统一的编码。总的规定是:将代码表分为94个区,对应第一字节;每个区94个位,对应第二字节,两个字节的值加32(20H)。
根据汉字国标码gb2312-80的规定
根据汉字国标码GB2312-80规定,一级汉字3775个,二级汉字3008个,总计6763个。GB2312-80将代码表分为94个区,对应第一字节;每个区94个位,对应第二字节。01-09区为符号、数字区,16-87区为汉字区,10-15区、88-94区为空白区。
法律依据:《中华人民共和国国家通用语言文字法》第四条和第六条。
汉字编码gb2312-80中,为什么既有国标码,又有机内码?
汉字编码GB2312-80涉及汉字输入、存储、交换与显示一系列编码和转换过程,包括外码、内码、交换码和字形码。
外码是输入码,通过拼音或五笔输入法输入的字母;内码是计算机内部存储的编码方式;交换码即国标码,用于信息交换的编码方式;字形码将二进制编码的汉字还原为可视图形。
GB2312字符集为信息交换提供了基本集,包括94个区和每个区94位,共8836个可使用的字符。区号和位号加32位的设计避免了与ASCII的冲突,有助于处理中英混合文本。
字形码的表示方法多样,包括点阵字形和矢量表示,提供了汉字显示的灵活性。