视频加载失败

汉字编码电路实验-2026(new)

1187 字
6 分钟
汉字编码电路实验-2026(new)
  1. 1汉字编码电路实验-2026(new)本文
汉字编码电路实验-2026(new)

由于题目说明与教材都过于语焉不详,特写一文记录分享我个人的解题思路,希望能对读者起到一定量的帮助,也欢迎指正。

理论#

首先我们需要理解二进制数的位定义。 由于二进制进位由右向左,所以我们定义左侧为高位,右侧为低位,(类似于10进制中左侧也为高位),计数时从右向左从0开始逐步+1。

如二进制数 1011101110101010

1011101110101010
1514131211109876543210

也可以为了方便观看写成

10111011
15141312111098
10101010
76543210

此汉字编码采用了双字节编码,为与 ASCII 编码兼容并区分,汉字编码双字节的最高位MSB都为1,也就是实际使用了14位来表示汉字。这就是1980年颁布的国家标准GB2312,也称国标码。

由此段课本可知,GB2312编码为16位二进制数,且第7位和第15位都为1。

为了检索方便,该标准采用 94×94=8836的二维矩阵对字符集中的所有汉字字符进行了编码,矩阵的每一行称为“区”,每一列称为“位”,区号和位号都从1开始编码,采用十进制表示,所有字符都在矩阵中有唯一的位置,这个位置可以用区号和位号组合表示,称为汉字的区位码。

区位码的0-6位为位号,8-14位为区号。

区位码和GB2312机内码之间可以互相转换:区位码+A0A0H=GB2312机内码。

此处的A0A0H,H代表Hex,表示这是一个十六进制数,表示值的部分是前面的机内码,将它转成二进制数则是这样的:

10100000
15141312111098
10100000
76543210

反过来说,区位码=GB2312机内码-A0A0H,这是成立的。在二进制中,减一个数等价于加上这个数逐位翻转后加1,对A0A0进行操作可得0101111101100000,转为十六进制即为5F60。 即GB2312机内码+5F60H=区位码。

题解#

第一关#

进入本题,打开data.circ 注意到该电路由3部分组合而成,隧道GB2312会传入16位GB2312编码,通过加法器进行加法操作,得到的区位码通过分线器被分解为区号和位号输出,下方提示要求用加法器完成,这提示我们应当使用GB2312机内码+5F60H=区位码作为我们的操作理论。

首先在左侧菜单的线路中找到常量组件,单击后单击加法器左侧空白处放置 连线 注意到产生了三处位宽不匹配,两处来源于加法器组件,一处来源于常量组件,在编辑工具模式下(白色鼠标指针)分别点击组件,在左下角工作区将位宽调整至16 将常量组件的值改为此前计算出的0x5F60,可观察到探测区显示GB2312=0000,区号=95,位号=96,切换至 ◇汉字显示 电路图,右侧正确显示汉字 华,证明所有操作正确无误,点击左上角 文件-保存 后可提交评测。

第二关#

切换至 ◇汉字显示 电路图 注意到此电路已连接完成,运行逻辑为由时钟发出信号使计数器计数增加,只读存储器输出数字对应的GB2312编码,经过黄色的模块转为区号和位号传入字库使LED点阵显示正确的字符。 此处黄色模块为第一关中我们完成的部分,上方的输出引脚则为评测平台验证用途,无需理会。

观察题目要求,要求将“1Aa轻”转为GB2312编码并替换ROM只读存储器的内容。 注意此处需要转换的文本中存在非常规的 1Aa ,实际为全角字符 \uff11\uff21\uff41,推荐使用复制工具到工具网站进行转码。 得到编码A3B1 A3C1 A3E1 C7E1 。 点击ROM只读存储器,在左下角工作区点击 存储数据(点击进行编辑),将所有数据归零后,输入(或粘贴)出刚才得到的GB2312编码,点击关闭窗口。 也可以右键ROM,使用加载数据镜像功能,此处不加以赘述。 注意到LED点阵上显示内容变为了1,可以切换至戳工具(橘红色小手)单击时钟组件来切换图样,按Ctrl+K键复位。也可以用Ctrl+T键使时钟单步前进。 保存后评测即可完成。

附:第一关在平台上给出的常量值为0xDFE0,与我们计算的0x5F60不同,但实际上0x5FE0,0xDF60也都可以通过评测,可尝试解释这是为什么。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

汉字编码电路实验-2026(new)
http://asakura.top/posts/guide/word/
作者
Dion Fortune
发布于
2026-09-19
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
暂无相关文章
随机文章随机推荐

评论区

Profile Image of the Author
Dion Fortune
Hello, I'm Dion Fortune.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
1
分类
1
标签
2
总字数
1,311
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Workers
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录