用位运算实现加法运算,这代码哪有问题啊

img

c=c^d;
d=(c^d)&d;
优先级&大于^,所以要带括号

在做c=c^d之前,你需要用一个变量先把c的值存起来
否则后面继续做d=c^d&d,用的就是修改后的值了

int e=c;
c=e^d;
d=e^d&d;