1. 利用位运算求两数之和
class Solution {
public:
int getSum(
int a,
int b) {
int sum = a^b;
// sum 是不带进位的的和
int carry = (a&b)<<
1;
//carry是进位的值
while(carry !=
0)
{
a =
sum;
b =
carry;
sum = a^
b;
carry = (a&b)<<
1;
}
return sum;
}
};
2. 不使用新的变量,交换两个变量的值
//基于加减法
a = a +
b;
b = a -
b;
a = a -
b;
//基于异或运算
a = a ^
b;
b = a ^
b;
a = a ^ b;
转载于:https://www.cnblogs.com/vincent93/p/6686429.html
相关资源:JAVA上百实例源码以及开源项目
转载请注明原文地址: https://mac.8miu.com/read-18354.html