用位运算表示+ -的方法
笔试时遇到的题目:
用位运算表示
a=b*2
a=b+2
个人认为 a=b*2 应该表示为 a=b < <2
那 a=b+2 该如何解决?
a=((b < <2)+1)> > 2 ???这样? 感觉不对
[解决办法]
减法可以使用 异或;
加法可以使用 或 (没有进位的情况下)
[解决办法]
1 a=b < <2
2 a=(int) &((char*)b)[2] //这句是抄来的。