設計一個函數計算2n+1:
int func(int n)
{
return n << 1 + 1;
}
這個函數得到的結果是4*n。
使用左移一位代替乘以2的運算,是很好的方法,但在C/C++中“+”運算符優先級高於“<<”,因此會先進行加法運算再左移兩位,得到結果4*n。
正確寫法是:
int func(int n)
{
return (n << 1) + 1;
}
設計一個函數計算2n+1:
int func(int n)
{
return n << 1 + 1;
}
使用左移一位代替乘以2的運算,是很好的方法,但在C/C++中“+”運算符優先級高於“<<”,因此會先進行加法運算再左移兩位,得到結果4*n。
正確寫法是:
int func(int n)
{
return (n << 1) + 1;
}