开发者社区 问答 正文

关于C语言除法的一个优化问题

①y/4

if(y<0) y+=3;y >>= 2
①和②为什么是等价的?那个3是怎么弄出来的?

展开
收起
a123456678 2016-03-19 14:46:08 1953 分享 版权
1 条回答
写回答
取消 提交回答
  • 代码不完整,二进制计算中,右移1位就是整除2,2位就是整除2再整除2(也就是4),以此类推。好比十进制中,小数点往右每移动一次,就是除以10,移动2个数字就是除以100。

    2019-07-17 19:08:15
    赞同 展开评论
问答分类:
问答标签:
问答地址: