voidswap(int& a,int& b){
a = a^b;
b = a^b;
a = a^b;}intmain(){int a =5;int b =3;swap(a,b);
std::cout << a <<" "<< b << std::endl;//3 5return0;}
2. 两个整数相加
intadd(int a,int b){if(a==0)return b;if(b==0)return a;int m =0,n =0;while((a&b)!=0){
m = a^b;
n =(a&b)<<1;
a = m;
b = n;}return a|b;}intmain(){int a =5;int b =3;
std::cout <<add(a,b)<< std::endl;return0;}
3. 两个整数相乘
intmultiply(int a,int b){int result =0;for(int i=1; i; i<<=1,a<<=1)if(b&i)
result += a;return result;}intmain(){int a =5;int b =3;
std::cout <<multiply(a,b)<< std::endl;return0;}
4. 加1减1
int n =1;
n =-~n;// 现在 n = 2int n =2;
n =~-n;// 现在 n = 1