首页 > 解决方案 > 负数的右移除法

问题描述

在无符号整数的情况下u,我们可以很容易地得到商u>>k(k 表示除以 2^k)

但在负数的情况下,它应该计算为(u+(1<<k)-1)>>k

我可以看到这u>>k不适用于负数。

但我很好奇为什么我们必须(1<<k)-1添加u

任何解释都可能真的很有帮助。

标签: integer-division

解决方案


推荐阅读