汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。
计算机中, 补码第一位是符号位, 1 表示为 负数, 所以 汉字机内码的每个字节表示的十进制数都是负数
对于这个问题,大家可以做一道关于这个方面的题目,http://acm.hdu.edu.cn/showproblem.php?pid=2030
hdu 2030统计汉字,只要了解了这个方法,就很容易解出这道题。
#include<cstdio>
#include<string>
int main()
{
//freopen("date.in","r",stdin);
//freopen("date.out","w",stdout);
int n,i,l,sum;
scanf("%d",&n);getchar();
while(n--)
{
char c[MAX];
gets(c);
sum=0;
l=strlen(c);
for(i=0;i<l;i++)
if(c[i]<0)
sum++;
printf("%d\n",sum/2);
}
return 0;
}
1—— 一个汉字在字符串中是以两个负的字符形式存储,所以本题只要把字符串中负字符的个数找出来,再除以2 就OK了。