這個問題源于一道分解質因數的水題(codevs 1313)
我的源碼中有一段是
int n,p;
scanf("%d",&n);
if (n&1==0){
printf("%d",n/2);
return 0;
}
可是問題出現了 如果我們輸入一個偶數 這個程式塊根本不跑
這是一項很奇怪的事 因為快速幂非遞歸中 我們常用到if(n&1==1)這樣的句子
LGA大嬸,ZLC神犇紛紛表示無法解答 但鄙人在知乎上找到了答案http://www.zhihu.com/question/20798455
因為這時候我才恍然大悟:位運算優先級非常低 左右移甚至比加減運算優先級還低
沒想到的原因 一個是P黨時代不用考慮這個 直接and shr這樣的 在一個是平時也不大注意 果然還是加括号吧 也能提高程式可讀性
——明明如月,何時可掇?憂從中來,不可斷絕。