- 实现高效的C语言编写的第三招--使用位操作,减少除法和取模的运算。
在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所
有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位
操作可以有效地提高程序运行的效率。举例台如下:
方法G
int I,J;
I=257/8;
J=456%32;
方法H
int I,J;
I=257>>3;
J=456-(456>>4<<4);
在字面上好象H比G麻烦了好多,但是,仔细查看产生的汇编代码就会明白,方法 G调用了基
本的取模函数和除法函数,既有函数调用,还有很多汇编代码和寄存器参与运算;而方法H
则仅仅是几句相关的汇编,代码更简洁、效率更高。当然,由于编译器的不同,可能效率的
差距不大,但是,以我目前遇到的MS C,ARM C来看,效率的差距还是不小。相关汇编代码就
不在这里列举了。
运用这招需要注意的是,因为CPU的不同而产生的问题。比如说,在PC上用这招编写的程
序,并在PC上调试通过,在移植到一个16位机平台上的时候,可能会产生代码隐患。所以只
有在一定技术进阶的基础下才可以使用这招。
使用位操作,减少除法和取模的运算。
最新推荐文章于 2023-10-12 21:29:18 发布