设计一个函数计算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; }
时间: 2024-12-25 13:33:42
设计一个函数计算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; }