开发者社区> 问答> 正文

JAVA中为什么可以使用位运算(&)来实现取模运算(%)呢?

JAVA中为什么可以使用位运算(&)来实现取模运算(%)呢?

展开
收起
vncamyi27xznk 2021-11-13 23:54:47 589 0
1 条回答
写回答
取消 提交回答
  • "实现原理: X % 2^n = X & (2^n - 1) 2^n 表示 2 的 n 次方,也就是说,一个数对 2^n 取模 == 一个数和(2^n - 1)做按位与运算 。 假设 n 为 3,则 2^3 = 8,表示成 2 进制就是 1000。2^3 -1 = 7 ,即 0111。 此时 X & (2^3 - 1) 就相当于取 X 的 2 进制的最后三位数。 从 2 进制角度来看,X / 8 相当于 X >> 3,即把 X 右移 3 位,此时得到了 X / 8 的商,而被移掉的部分(后三位),则是 X % 8,也就是余数。

    资料来源:《Java工程师成神之路(基础篇)》,链接:https://developer.aliyun.com/topic/download?id=923"

    2021-11-16 13:15:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载