我有这个功能,显然它会导致我的程序崩溃:
long long todos(long long x,long long i) {
x ^= (1 << i);
long long aux = i - 1;
if(aux >= 0) x ^= (1 << aux);
aux = i - 4;
if(aux >= 0) x ^= (1 << aux);
aux = i + 1;
if(aux < 16) x ^= (1 << aux);
aux = i + 4;
if(aux < 16) x ^= (1 << aux);
return x;
}
我不明白为什么当我更改所有^= (
for&= ~(
时它运行得非常好(尽管我得到的输出不同)。这种行为有什么合乎逻辑的解释吗?
如果您需要整个代码:http: //ideone.com/Z7qoof