计算机的编码的疑惑

供稿:hz-xin.com     日期:2025-01-18
国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,如“保”?字,国标码为31H和23H,而西文字符“1”和“#”的SCII也为31H和23H,现假如内存中有两个字节为31H和23H,;这到底是一个汉字?,还是两个西文字符“1”;和“#”?于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的,于是,;汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变,如:由上面我们知道,“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B 即为B1A3H,因此,?字的机内码就是B1A3H;。

显然,汉字机内码的每个字节都大于128,这就解决了与西文字符的ASCII码冲突的问题。

西文字符由于数量较少(通常不超过128个),所以采用1个字节(8位)就能完成对所有的西文字符的编码,ASCⅡ码规定西文字符的编码只使用字节的低7位(从第1位到第7位),最高位设为0。所以ASCⅡ码的编码范围是十进制数0~127(写成十六进制即00H~7FH)。
  汉字的个数远比西文字符多,国家标准规定的最常用和较常用的汉字便近8000个。显然,如果象西文字符那样采用1个字节对汉字编码就不够了。所以国家标准规定,每个汉字的编码都采用2个字节表示。汉字国标码的一个特点是,尽可能与西文字符的ASCⅡ码相一致。所以汉字国标码的每个字节都只采用其最低7位(从第1位到第7位)。最高位仍然取0。
  汉字国标码的取值范围是十进制数33~126(写成十六进制即21H~7EH)。
  举例来说,“天”字国标码的两个字节分别是76、108(十进制),写成十六进制是4CH,6CH,写成二进制便是01001100B,01101100B:
  “天”的国标码:
  01001100  01101100
    第2字节      第1字节
  汉字国标码作为一种国家标准,是所有汉字编码都必须遵循的一个共同标准,但由于国标码每个字节的最高位都是0,这正好与ASCⅡ码相冲突。例如“天”字的国标码是76、108,而西文字符“L”和“l”的ASCⅡ码也恰好是76和108,现在假如内存中有两个字节76、108,这到底是一个汉字“天”呢,还是两个西文字符“L”和“l”?都有可能,这就出现了二义性。显然国标码在计算机内部是不可能直接使用的,必须对其进行某种变换后才可以使用。其变换方法便是将国标码双字节的每个字节都加上128,相当于将国标码每个字节的最高位即第8位都由0变成1,其余7位不变。这种经过变换的国标码就是汉字的机内码。显然汉字机内码的每个字节都大于128,这就与西文字符的ASCⅡ码区分开了(ASCⅡ码都小于128)。
  例如,上面举的汉字“天”的国标码是76、108,将国标码的每个字节都加128,就得到其机内码204、236(均是十进制),写成十六进制就是CCH、ECH,写成二进制便是11001100B、11101100B。
  每个字节的第8位都由0变成了1,其余位不变。
  “天”的机内码:
  11001100  11101100
    第2字节      第1字节
  通过以上分析可看出,汉字国标码在两个字节中占用7位,而汉字机内码在每个字节中的8位全占用了。在计算机内部实际采用都是机内码而不是国标码。
  还要指出的是,机内码是个相当广泛的概念,凡是计算机内部实际采用的汉字代码都叫机内码,我们以上所说的是采用双字节并且将国标码的每个字节的最高位都置为1,这只是目前一种最常用的汉字机内码方案,但汉字内码不止这一种,如台湾等地采用的就不是这种机内码方案,但这同样也叫机内码。

计算机的编码的疑惑
国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,如“保”?字,国标码为31H和23H,而西文字符“1”和“#”的SCII也为31H和23H,现假如内存中有两个字节为31H和23H,;这到底是一个汉字?,还是两个西文字符“1”;和“#”?于是就出现了二义性,显然,国标码...

一文帮你彻底弄懂编码\/字节\/字符
深入理解编码、字节与字符:解码迷宫,实现高效编码传输 初入 IT 世界,编码设置的疑惑常如影随形,乱码问题让人头痛不已。在数据库、页面或接口调试中,乱码的出现往往让人陷入迷茫。本文旨在为您揭开编码、字节与字符的神秘面纱,帮助您深入理解这些概念,并在编码设置中游刃有余。编码设置是保障信息传输...

同样是四字节,为什么int类型和float类型能存取的数值范围
首先,计算机存储数据采用的是二进制编码方式。计算机内部是用0和1组成的机器语言进行运算与存储数据。不同数据类型能存储的范围不同,如果用小范围类型存储大范围数据,会导致精度损失。计算机存储最小单位是bit,而不是byte。1byte=8bit。4字节的`int`类型能表示的数范围为-2^31到2^31,共有32个...

【计算机组成原理】定点数的原码,补码和反码
机器数是计算机中表示数据的编码方式,其中原码、补码和反码是三种常见的表示法。原码表示数的符号位和数值位,补码和反码在表示负数时则有所不同,但都简化了加减运算的实现。真值是机器数所代表的实际数值。原码表示法中,符号位为第一位,表示数的正负,其余位表示数值的绝对值。例如,一个纯小数表示...

二进制:关于10000000如何表示-128的问题
对的,有符号数 最高位是符号位。于是,计算机里 +0 和 -0 编码是不一样的。计算机里负数用补码表示,为的是减法可以用加法器执行。10000000 那个1是表示负数,但整个值是 -128,这是特殊的规定。就这一个值特殊。不能用寻常的减1求反判断。这是为了让有符号数,多1个有用的数据点,让可描...

IMEI码是什么意思?
IMEI码查询方法:1、进入手机设置--系统管理\/更多设置--关于手机--(状态信息)中,可查询到;(部分机型进入手机设置--我的设备--更多参数中可查询到)2、手机包装盒上面的贴纸印有IMEI码,可进行查看。更多使用疑惑可进入vivo官网--我的--在线客服--输入人工,咨询在线客服反馈。

考前扫盲,计算机这些知识点是一定会考的?
(三)数据与编码 数据与编码是计算机基础中计算部分,包括进制转换、数值编码、西文编码和汉字编码。考试中的计算题几乎都来自本节内容,是重中之重,也是很多同学的难点。掌握对应的计算方法就能把相应的分拿到手,。tip 2 操作系统操作系统(Operating System,OS)是控制和管理计算机系统内各种软、硬件资...

所有事物的终极答案是什么?
在计算机编码中,42代表通配符,暗示着无尽的可能性。正如“Deep Thought”作为超级计算机,它的答案42对它来说是开放的,象征着未知和无穷的探索空间。数学的挑战与发现 在数学领域,寻找42背后方程的整数解,如同攀登数学的高峰。丢番图方程的困难求解,反映了数学的深邃与挑战。从25到42,每一步都是...

计算机资产编号是什么
固定资产编号相当于每个人的身份证或者如同银行卡的号码一样,一个身份证号码只能对应一个人,就算这个人过世了,但是这个号码还是留着。常用的固定资产编号,第一位是固定资产的一级科目,具体为1表示生产用固定资产、2表示非生产用固定资产、3表示租出固定资产、4表示非使用固定资产、5表示不需用固定...

一文彻底搞懂Unicode编码问题
多年深入理解Unicode编码,却在尝试修改旧代码时感到困惑,尤其是对于项目“正则可视化”和“JS工具函数库”。本文旨在彻底解答关于Unicode编码的所有主要疑惑,确保读者能够应对所有非专业字符编码相关的开发需求,无需过度探究细节。简介 本文将依次介绍ASCII、Unicode、全角半角、HTML\/XML转义、UTF32、UTF16、...