您的位置:首页 > 其它

阿里2014软件研发部笔试题_14

2013-11-13 19:01 239 查看
题目如下:

14、如下函数,在32bit 系统foo(2^31-3)的值是:

int foo(int x)

{

return x&-x;

}

A.0 B.1 C.2 D.4

题目解析:在C++中,没有幂指数的运算符,求一个数的幂使用pow(x,y)来实现的,所以此处的x^y指的是x与y的异或运算。

题中将2^31-3整体带入函数内,可得到

return 2^31-3&-2^31-3;

按照运算符优先级顺序,1)- 负号; 2) - 减号; 3)&; 4) ^ 异或

执行顺序如下,

<1> 31 - 3 = 28 return 2^28&-2^28;

<2> 28 & (-2) = 28 return 2^28^28;

<3> 28 ^ 28 = 0 return 2^0;

<4> return 2;

因此,答案选 C
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: