作业帮 > 综合 > 作业

C语言中字符常量'\xA2'对应的数值为什么是102.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/06 00:04:50
C语言中字符常量'\xA2'对应的数值为什么是102.
我用C运行出来是-94,自己算出来是162,答案是102,为啥 .
之所以用C语言运行出来是因为你肯定用了char类型字符.(最大值是127)char类型字符是有符号类型,‘\xA2’转为二进制则是:10100010(最高位为1,意味着这个是一个负数).
获取负数的绝对值的方法是:各位取反,末位加一:各位取反:01011101末位加一:01011110十进制就是94,所以运行结果是-94.如果想正确转,可以使用unsigned char类型,或者使用共用体:typedef union _A
{
char a;
int s;
}A;
int main()
{
A aa;
aa.s=0;//把aa初始化为0
aa.a='\xA2';
printf("%d",aa.s);
return 0;
}至于答案为什么写的是102,要么答案错,要么你给的题目不完整.但我觉得答案错的可能性更大,因为答案的思路很可能是10*10+2,把十六进制误当做成10进制.