题目出处
简单题
思路:
题目已有提示([Hint:]从汉字机内码的特点考虑~)
因为当系统中同时存在ASCII码和汉字国标码时,将会产生二义性。所以为了消除这二义性,就需要进行一些处理:
汉字机内码 = 汉字国标码 + 8080H
意思就是把国标码的每个字节最高位置1
这样做的效果,就会使到单个字节变成负数。所以此题的解法只需判断是否为负数即可
关键代码:
char c;
while ((c = getchar()) != '\n')
{
if (c < 0)
//do something
}

本文介绍了一种解决ASCII码与汉字国标码共存时产生的二义性问题的方法。通过将汉字国标码转换为机内码,即在国标码的基础上加上8080H,使得汉字编码的单字节变为负数,以此来区分ASCII码和汉字编码。
448

被折叠的 条评论
为什么被折叠?



