问题
单项选择题
设有以下语句:
int a=1, b=2, c;
c=a^(b<<2);
执行后,c的值为( )。
A) 6
B) 7
C) 8
D) 9
答案
参考答案:D
解析: 本题考查的是位运算。因为任何数在计算机中都是以二进制的形式存在的,而位运算就是直接针对一个数的二进制位来进行的一些操作。题中的表达式b<<2意思是将b的二进制位往左移动2位,b的原值为2,即二进制的00000000 00000010。往左移动2位后应该变为00000000 00001000,即十进制8。不难看出每往左移动1位,就相当于在原值的基础上乘以1个2,但这也不一定准确,因为还要考虑往左移出去的那些位。接下来是a^8,^是按位异或运算符,简单来说就是比较参与运算的两个数相应的二进制位,若两个位相同则结果为0,否则为结果为1。