计算机编程专项试题位运算
一、填空题
1. 设有char a,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2和第8位(右起为第0位)。则b的二进制数是。
2. 测试char型变量a 第六位是否为1的表达式是(设最右位是第零位)。
3. 设二进制数x的值是11001101。若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是。
4. 设x 是一个整数(16bit).若要通过x|y使x低8位置1,高8位不变,则y的二进制数是。
5. 设x=10100011.若要通过x^y使x的高4位取反,低4位不变。则y的二进制数是。
6. 以下程序的运行结果是。
#include
int main()
{
unsigned a,b;
a=0x9a;
b=~a;
printf(“b:%x\n”,b);
return 0;
}
7. 以下程序的运行结果是。
#include
int main()
{
unsigned a=0112,x,y,z;
x=a>>3;
printf("x=%o,",x);
y=~(~0<<4);
printf("y=%o,",y);
z=x&y;
printf("z=%o\n",z);
return 0;
}
8. 以下程序的运行结果是。
#include
int main()
{
unsigned a=0361,x,y;
int n=5;
x=a<<(16-n);
printf("x=%o,",x);
y=a>>n;
printf("y1=%o,",y);