烟火真空

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

我一直都以为c中除以2的n次方可以使用右移n位代替,然而在实际调试中发现并不都是这样的。是在计算余数是发现了异常
被除数:114325068
右移15计算结果:3488
除法取整计算结果:3489
右移操作计算余数:33772
除法取整计算余数:1005
显然:这是不一样的。
移位操作是一条cpu指令,显然是比除法操作快的,特别是在Cortex-M0内核的处理器上是没有硬件除法器的;但实际编程中还是谨慎使用移位操作代替除法运算。

posted on 2024-02-26 11:21  烟火真空  阅读(79)  评论(2编辑  收藏  举报