好奇为什么这样做
public long flip(long n) {
long finalResult = 0;
for (int i = 0; i < 32; i++) {
finalResult = finalResult | (1L << i);
}
return n ^ finalResult;
}
但这不是
public long flip(long n) {
long finalResult = 0;
for (int i = 0; i < 32; i++) {
finalResult = finalResult | (1 << i);
}
return n ^ finalResult;
}
我知道finalResult'11111111111111111111111111111111111'将为-1(并且可能会导致问题),但是我仍然不确定为什么简单地翻转n中的位会导致问题。