⑴ c语言中'\0xa'为什么是非法常量
c语言规定十六进制转义符写法为'\xhh'比如'\xa'或'\x0a'
而转义符后直接跟数字的是八进制数,'\0xa'所以错了
⑵ c语言中\xa是一个什么字符
它就是'\n'。因为C中的\x是转义字符前导符,表示后面是一个16进制数表示的ASCII码,a是16进制表示的十进制10,ASCII码意义是“回车”。
⑶ 想请教下关于C语言中的字符常量问题
'\'是转义字符,意思就是'\'后的字面不是原来的意思,最常见的就是'\n'表示换行,明白了这个,下面就好讲解了
\x表示的是十六进制,例如\xa表示的是10,\xf,表示的是15,\xff表示的是255(15*16+15)
\o表示的是八进制,所以\028表示2*8+8=24
所以c是对的
至于B为什么不合法,因为么有\f这个转义词,转义词没有几个,照书上记住既可以了,那样你碰到这类问题就迎刃而解了
呵呵
⑷ C语言的特殊符号
ASCII码值(十进制)
\a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012
\n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009
\v 垂直制表(VT) 011 \\ 反斜杠 092 \? 问号字符 063
\' 单引号字符 039 \" 双引号字符 034 \0 空字符(NULL) 000
⑸ C语言中字符串占得字节数
\后面如果直接是数字就处理成8进制数据,不超过三位,遇到不在0~7之间的数据就终止而且要不大于\377。如果超过这个大小,编译器可能会报错。如果第一个位就不在0~7之间,比如\8...,可能直接忽略\。
\后面如果是x,再后面的数就处理成16进制数据,至少一位最多两位,遇到不是十六进制的数据就终止。如果第一位就不是十六进制数或者超过两位,编译器可能会报错。
⑹ C语言中字符常量'\xA2'对应的数值为什么是102.
之所以用C语言运行出来是因为你肯定用了char类型字符。(最大值是127)
char类型字符是有符号类型,‘xA2’转为二进制则是:
10100010(最高位为1,意味着这个是一个负数)。
获取负数的绝对值的方法是:各位取反,末位加一:
各位取反:
01011101
末位加一:
01011110
十进制就是94,所以运行结果是-94。
如果想正确转,可以使用unsigned char类型,或者使用共用体:
typedefunion_A
{
chara;
ints;
}A;
intmain()
{
Aaa;
aa.s=0;//把aa初始化为0
aa.a='xA2';
printf("%d",aa.s);
return0;
}
至于答案为什么写的是102,要么答案错,要么你给的题目不完整。但我觉得答案错的可能性更大,因为答案的思路很可能是10*10+2,把十六进制误当做成10进制。