使用位操作,减少除法和取模的运算。

  • 实现高效的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位机平台上的时候,可能会产生代码隐患。所以只
    有在一定技术进阶的基础下才可以使用这招。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值