使用UltraEdit软件观察字符“挑战AlphaGo!”的内码,部分界面如图所示。  下列说法正确的是
拿到题先别急着看选项,盯着UltraEdit的十六进制窗口看字符对应的是ASCII还是GBK编码,这是解题唯一抓手。
学生容易把“挑战AlphaGo!”当成纯ASCII字符串,误以为所有字符都是单字节,或者把GBK编码的汉字当成两个独立的ASCII字符去算十六进制码。还有人会混淆“内码占几个字节”和“十六进制码有几个数字”,把两个字节当成四个十六进制数,导致选项判断失误。
这道题考查的是字符编码与内码表示,核心是区分ASCII字符(单字节)和GBK汉字(双字节),以及掌握十六进制与二进制的转换规则。
命题人挖坑点:UltraEdit窗口显示的是十六进制内码,但题目问的是“内码占几个字节”或“十六进制码是多少”。学生如果只看到十六进制数字,可能误以为每个汉字占4个十六进制数(其实2字节=4个十六进制数字),或者把GBK编码的汉字当成两个独立的ASCII字符去算十六进制码。
思考心法:拿到题先看每个字符在窗口中的显示——“!”是ASCII,占1字节;“战”是汉字,在GBK中占2字节;“h”“o”是ASCII,各1字节。然后逐项核对选项: A. “!”是ASCII,1字节,错。 B. “战”是GBK汉字,其内码应为2字节(4个十六进制数字),而“BD 41”只有2个十六进制数字(1字节),显然不对。 C. “h”是ASCII,7位编码为0x68,8位二进制为01101000,完全正确。 D. “go”是两个ASCII字符,应占2字节(4个十六进制数字),而“47 6F”只有2个十六进制数字(1字节),错。
避坑:不要看到“十六进制码”就以为数字个数等于字节数;不要忽略GBK编码下汉字占2字节的事实;不要混淆“内码字节数”与“十六进制表示的数字个数”。
考频趋势:从历年CSP-J/S、NOIP及浙江高考信息技术真题看,字符编码、ASCII与GBK区分、十六进制与二进制转换是高频考点,尤其UltraEdit界面观察题几乎每年必现,属于“基础但易错”类型。
预测:未来仍会以UltraEdit截图或十六进制编辑器界面为背景,考查ASCII/GBK/UTF-8编码区分、字节数计算、十六进制与二进制互转,可能增加“转义字符”或“多字节字符集”干扰项,难度略有提升但核心不变。