本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第2章,建议14,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
建议14:适当地使用位操作来提高计算效率
我们知道,程序中的所有数据在计算机内存中都是以二进制的形式进行存储的,数据的位是可以操作的最小数据单位,位操作就是直接对整数在内存中的二进制位进行操作。因此,在理论上,我们可以通过“位运算”来完成所有的运算和操作,从而有效地提高程序运行的效率。
C语言中提供了&(与)、 |(或)、 ^(异或)、~(取反)、>>(右移)、<<(左移)6种位操作符。我们可以在程序中合理地使用这些位操作符号来提高程序的运行效率,例如,建议12-4中介绍的利用移位运算来提高乘除法与求模运算。对于下面的示例代码:
int x=0;
int y=0;
x = 257 /8;
y = 456 % 32;
我们可以通过位操作符将其修改成如下形式:
int x=0;
int y=0;
x = 257 >>3;
y = 456 - (456 >> 4 << 4);
这样就可以使程序在性能上得到一定提升。