305419896>> 28等于1?

时间:2014-02-19 03:13:02

标签: bit-shift

我正在学习按位操作,无法弄清楚305419896位移到28位等于1?有人可以解释一下吗?

2 个答案:

答案 0 :(得分:4)

以二进制表示的

3054198961001000110100010101100111100(即29位)。如果我们取得该值并将所有位移到正确的28位,我们最终只有1(二进制和十进制)。

答案 1 :(得分:2)

您可以将>> n视为2 ^ n的截断除法。

305419896 / 2^28 -> 305419896 / 268435456 -> 1.1377777755260468

小数部分被删除,留下1。

当然,正如andars所说,计算机通过位移来实现这一点 阅读this question以获得良好的理解。

相关问题