问题 单项选择题

设有以下语句:
char a=3,b=6,C;
c=a|b<<2;
printf("%d\n",C);
则c的二进制值是( )。

A.00011011

B.00010100

C.00011100

D.00011000

答案

参考答案:A

解析: 因为左移运算符<<的优先级比位或运算符,要高,所以先计算b<<2。而左移n位在不溢出的前提下相当于乘以2n,所以b<<2=6*22=24。再计算3|24=(00000011)2|(0001 1000)2=(0001 1011)2,故本题的正确答案是A。

单项选择题
单项选择题