C语言中字符常量'\xA2'对应的数值为什么是102.我用C运行出来是-94,自己算出来是162,答案是102,为啥 .
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 21:54:59
![C语言中字符常量'\xA2'对应的数值为什么是102.我用C运行出来是-94,自己算出来是162,答案是102,为啥 .](/uploads/image/z/10027666-10-6.jpg?t=C%E8%AF%AD%E8%A8%80%E4%B8%AD%E5%AD%97%E7%AC%A6%E5%B8%B8%E9%87%8F%27%5CxA2%27%E5%AF%B9%E5%BA%94%E7%9A%84%E6%95%B0%E5%80%BC%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AF102.%E6%88%91%E7%94%A8C%E8%BF%90%E8%A1%8C%E5%87%BA%E6%9D%A5%E6%98%AF-94%2C%E8%87%AA%E5%B7%B1%E7%AE%97%E5%87%BA%E6%9D%A5%E6%98%AF162%2C%E7%AD%94%E6%A1%88%E6%98%AF102%2C%E4%B8%BA%E5%95%A5+.)
xSNQ#ۙj4@&f}p$c2\;BhK* Дe_3OLɜk}
RJU˨Bu>;Rc/?aHbWؤUs#*:kH|
pU
?}?d/7r@Xdn7Y_ePـD+胧^6,aхpAhGdkXM-<.hMK;.a]YFj pYn'rw8l]6Z!G`j6uH{NVpP]sDےDn;pPV_. &
C语言中字符常量'\xA2'对应的数值为什么是102.我用C运行出来是-94,自己算出来是162,答案是102,为啥 .
C语言中字符常量'\xA2'对应的数值为什么是102.
我用C运行出来是-94,自己算出来是162,答案是102,为啥 .
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进制.