计算机二级考试c中遇到这样一道题,求答案和详细解题过程。

#include<stdio.h>intmian(void){charx=020,y=04;x>>=1;y<<=2;printf("%o",x^y);return0;}为... #include<stdio.h>
int mian(void)
{
char x=020,y=04;
x>>=1;
y<<=2;
printf("%o",x^y);
return 0;
}
为什么我手动算来和运行结果不一样呢?
展开
 我来答
苍穹若海
2019-04-08 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:76
采纳率:75%
帮助的人:18.9万
展开全部

main写成了mian····

char x=020,y=04:赋值为8进制,所以2进制下x=0001 0000,y=0000 0100

x>>=1:x右移一位,x=0000 1000

y<<=2:y左移2位,y=0001 0000

printf("%o",x^y):x异或y,x^y=0001 1000,打印成8进制为30

更多追问追答
追问
char 不是字符型吗?为什么x能被赋值成八进制下二十, 而不是‘0’‘2’‘0’单个字符?
追答
0开头的数字就是默认表示8进制,char字符型其实只是说给该变量分配了一字节内存空间,如果是赋值单字符,应该是x='0',且只能赋值一个,打印的是你可以打印成字符,也可以打印成数字。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式