问题
单项选择题
设有以下语句:
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。