C语言符号优先级
一. 问题的引出今天看阿里的笔试题,看到一个非常有意思的题目,但是很容易出错。题目:如下函数,在32bit系统foo(2^31-3)的值是:Int foo(int x){return x&-x;}解答:如果想要答对这道题目,首先要清楚C语言中符号的优先级别,负号(-)的优先级高于^,所以2^31-3=2^28,还有一个陷阱就是C语言中认为^为异或运算而不是幂函数,所以2^28=30,然后计算30 & -30得出结果。又因为计算机内存中的数据...