请问这个怎么做?编写一个 C 程序,它读取两个整数并打印两个整数之间的所有整数,这些整数的底部 2 位被设置。
只打印两个整数之间的整数,不应打印两个整数本身。
提醒:一点被认为是设置,如果它是一个1,并且未设置,如果它是一个0。
所以:
19,这是10011二进制,具有其底部2个比特集。
21,这是10101二进制,并没有其底部2个比特集。
在// PUT YOUR CODE HERE写完整内容,写一下代码蟹蟹。
#include <stdio.h>
// read two integers and print all the integers which have their bottom 2 bits set.
int main(void) {
int x, y;
scanf("%d", &x);
scanf("%d", &y);
// PUT YOUR CODE HERE
return 0;
}
要求用位运算吗?将这个整数和3进行与操作,如果结果为3,则符合条件
#include <stdio.h>
// read two integers and print all the integers which have their bottom 2 bits set.
int main(void) {
int x, y;
scanf("%d", &x);
scanf("%d", &y);
while(x<y-1)
{
x=x+1;
if(x&3==3)
printf("%d\n",x);
}
return 0;
}
#include <stdio.h>
int main(void) {
int x, y;
scanf("%d", &x);
scanf("%d", &y);
int i,a,b,t;
for(i=x+1;i<y;i++){
t=i;
a=t%2;
t/=2;
b=t%2;
if(a==1&&b==1){
printf("%d\n",i);
}
}
return 0;
}