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

admin2010-01-10  30

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

选项 A、11011
B、10100
C、11100
D、11000

答案1

解析 因为左移运算符<<的优先级比位或运算符,要高,所以先计算b<<2。而左移n位在不溢出的前提下相当于乘以2n,所以b<<2=6*22=24。再计算3|24=(00000011)2|(0001 1000)2=(0001 1011)2,故本题的正确答案是A。
转载请注明原文地址:https://kaotiyun.com/show/y1Wp777K
0

最新回复(0)