C语言中字符常量'\xA2'对应的数值为什么是102.
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/06 00:04:50
C语言中字符常量'\xA2'对应的数值为什么是102.
我用C运行出来是-94,自己算出来是162,答案是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进制.
获取负数的绝对值的方法是:各位取反,末位加一:各位取反: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进制.
C语言中字符常量'\xA2'对应的数值为什么是102.
C语言中,下列不合法的字符常量是
0Xa23为什么是合法的C语言数值常量
以下选项中,合法的一组C语言数值常量是:为什么?
C语言中:数值常量0xabgd 为什么是错的?
下列常量中,只占用内存空间1个字节的是___.A.数值型常量 B.字符型常量 C.日期型常量 D.逻辑型常量
合法的一组C语言数值常量是
C语言中4c1.5是合法的数值常量吗
C语言中 3,679.537 是合法的数值常量吗?
关于C语言的题,下列选项中不正确的字符常量是() A) '\\' B)'\'' C)'074' D)'\xaa'
(2)在C语言中,合法的字符常量是( ) A)'\084' B) '\x43' C)'ab' D) "\0"
C语言中下列选项中,非法的字符常量是() A) '\t' B) '\17' C) "\n" D)'\xaa'