我是一个C语言小白,请问y=x>>3和y=|x怎么解释啊y=x>>3和y=|x是什么意思啊,希望能详细点int x=10,yy=x>>3;printf("%d",y);y=x&5;printf("%d",y);y=x|2;printf("%d",y);}这个程序我一点也不知道 , 求解释

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/16 11:22:31
我是一个C语言小白,请问y=x>>3和y=|x怎么解释啊y=x>>3和y=|x是什么意思啊,希望能详细点int x=10,yy=x>>3;printf(

我是一个C语言小白,请问y=x>>3和y=|x怎么解释啊y=x>>3和y=|x是什么意思啊,希望能详细点int x=10,yy=x>>3;printf("%d",y);y=x&5;printf("%d",y);y=x|2;printf("%d",y);}这个程序我一点也不知道 , 求解释
我是一个C语言小白,请问y=x>>3和y=|x怎么解释啊
y=x>>3和y=|x是什么意思啊,希望能详细点
int x=10,y
y=x>>3;
printf("%d",y);
y=x&5;
printf("%d",y);
y=x|2;
printf("%d",y);
}
这个程序我一点也不知道 , 求解释

我是一个C语言小白,请问y=x>>3和y=|x怎么解释啊y=x>>3和y=|x是什么意思啊,希望能详细点int x=10,yy=x>>3;printf("%d",y);y=x&5;printf("%d",y);y=x|2;printf("%d",y);}这个程序我一点也不知道 , 求解释
y=x>>3和y=|x是什么意思啊,希望能详细点
int x=10,y
y=x>>3;//按位右移
printf("%d",y);
y=x&5;//按位与
printf("%d",y);
y=x|2;//按位或
printf("%d",y);
}
先把10化成二进制是1010 右移3位后是0001 因为1010的后三位被覆盖了 0001转换为二进制是1
其实按位右移 移一位相当于除以二 故移动三位答案是10/8=1
按位与把10化成二进制是1010 把1化成二进制是0001 所以按位与是0
按位或 把10化成二进制是1010 把0化成二进制0000 按位或 后是1010 所以是10