lintCode第一题A+B问题
http://www.lintcode.com/zh-cn/problem/a-b-problem/ 问题: 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 注意事项 你不需要从输入流读入数据, 只需要根据aplusb的两个参数a和b, 计算他们的和并返回就行。 您在真实的面试中是否遇到过这个题? 说明 a和b都是 32 位 整数么? 是的 我可以使用位运算符么? 当然可以 样例 如果 a = 1 并且 b = 2, 返回3 涉及知识点: javascript中的位操作符,参考资料 javascript高级程序设计 按位非(NOT) 按位操作的本质:操作数的负值减1。用~表示 按位与(AND) (&)表示。两个操作数先转为二进制,比较二进制中的每一位数,如果两个都是1,则返回1。其中任何一位是0,结果都是0 例如: var result = 25&3; 底层操作为:(最后8位) 25:0001 1001 3:0000 0011 &:0000 0001 返回 1 按位或(OR) (|)表示。两个操作数先转为二进制,比较二进制中的每一位数,如果有一个位是1的情况下返回1,而只有在两个位都是0的情况下才返回0 例如: var result = 25|3; 底层操作:(最后8位) 25: 0001 1001 3: 0000 0011 |: 0001 1011 返回27