【除2和右位移有什么区别假设a>=0;a>>1和a/2有区别-查字典问答网
分类选择

来自邓庆绪的问题

  【除2和右位移有什么区别假设a>=0;a>>1和a/2有区别吗?比如优先级,运行速度什么的?】

  除2和右位移有什么区别

  假设a>=0;

  a>>1和a/2有区别吗?比如优先级,运行速度什么的?

1回答
2020-02-24 17:47
我要回答
请先登录
宁纪锋

  就我所知有几方面区别:

  1)效率方面,移位shi比除法效率高的

  2)大部分情况下,移位的结果等同于/2^n但是有一个特例,-1右移一位,还是-1,对于大部分编译器,-1/2的结果一般是0.这个主要与移位设置有关.当负数执行右移位时候,空出来的位置是填补1而不是0.

  3)至于你说的优先级,除法优先级是比移位高的,例如a/b>>1实际上是先把a/b的结果右移一位.在所有优先级里,乘除优先级之后是加减,之后就是移位符.同样优先级的运算符从左到右执行(绝大部分的双目运算,除了赋值是从右到左,其他都是从左到右)

2020-02-24 17:49:12

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •