如何用位运算实现如下两条语句:
假设a,b,c为整数(int):
b = a/10000;
c = a%10000;

解决方案 »

  1.   

    10000是2的13次方,有余数,所以
    b = a/10000;
    可以写为:b = a >> (13 + 1);
      

  2.   

    b = a >> (13 + 1);不是b = a/16384;了吗?
      

  3.   

    用位运算来实现算术运算不可能完全相等阿!!因为位运算是按照二进制来实现的的,左移一位意味着a*2,右移一位意味着a/2;例如b=a/c,如果c是2整次幂倍数;还可实现,所以.....
      

  4.   

    就如楼主所说的那样,“b = a >> (13 + 1);不是b = a/16384;了吗?”
    我如果哪说的不对希望大家给点建议!不要骂我哦!!!!