以下是两行看似相同的代码:
long long mid=(l+r)/2;
long long mid=(l+r)>>1;
然而当 l=−1,r=0l=-1,r=0l=−1,r=0 时,第一行代码的值为 000,第二行代码的值为 −1-1−1,所以第一行代码会导致 RE。
为什么会有这种区别?