以下程序的结果是()
main()
{unsigned int a=3,b=10;
printf("%d\n",a<<2|b>>1);
}
A、
1
B、
5
C、
12
D、
13
【正确答案】:D
【题目解析】:
|: 是位运算符,表示“按位或”。a赋值为3,3的而进制为00000011,对a<<2,即a左移两位,a=00001100,b赋值10,二进制为00001010,对b>>1,即b右移一位,b=00000101。a<<2|b>>1,即1100|0101=1101=13。
以下程序的结果是()
main()
{unsigned int a=3,b=10;
printf("%d\n",a<<2|b>>1);
}
1
5
12
13
|: 是位运算符,表示“按位或”。a赋值为3,3的而进制为00000011,对a<<2,即a左移两位,a=00001100,b赋值10,二进制为00001010,对b>>1,即b右移一位,b=00000101。a<<2|b>>1,即1100|0101=1101=13。