创维笔考题-求高人讲解
创维笔试题----------求高人讲解有int a 15, 写代码实现第2位置1, 第三位置0:我最初给他们的答案是 a |
创维笔试题----------求高人讲解
有int a = 15, 写代码实现第2位置1, 第三位置0:
我最初给他们的答案是 a |= 2, a &= 0xfffffffb;
但是他们问我有没有其他答案,于是我冥思苦想,以为他们要更高的效率,所以充分发掘数据的特性和要求。
给出答案是:a -= 2;
没有想到啊,,我得到的回复是我是SB。自然面试失败,一路上我都在想这个最终答案是什么,始终想不出来,求各位高人指教。。。。
创维,笔试题
[解决办法]
int a
[解决办法]
=(1<<2);
int a &= ~(1<<3);
[解决办法]这种题本来就是很傻的,我自己感觉没啥意思。甚至考的都是些小聪明啥的。
这题也可以这么想,比如第二位为1,就为十进制数2,考虑数为15,所以构造其整数倍为30.
也就是a<<1。
[解决办法]如果你的编译器没有这优化,可以考虑换换了。
int a = ~4;
00B11789 mov dword ptr [a],0FFFFFFFBh
[解决办法]就没有直接沟通他们希望怎样?
个人一般是先最标准的写法,除非有明显的优化方案。
然后就是,可以沟通,看他们的真正意图。
另外个人的观点是,即使是嵌入式
效率<算法<易读性