【发布时间】:2016-11-25 11:30:45
【问题描述】:
JavaScript 整数可以达到 2^53,但所有位运算只能达到 2^32。有时我需要对 2^32 和 2^53 之间的数字进行位运算,所以我必须为所有位运算编写替代函数:
这是我目前所拥有的:
function lshift(num, bits) {
return num * Math.pow(2, bits);
}
function rshift(num, bits) {
return Math.floor(num / Math.pow(2, bits));
}
这是实现移位功能的最佳方式吗?
我现在需要实现& 和|。在我的代码中,我经常需要通过 127 和 128 来&,但我不知道该怎么做。
我不需要~ 或^,但我猜为了完整起见,它们可以包含在答案中。
【问题讨论】:
-
这可能对你来说很有趣:github.com/peterolson/BigInteger.js
-
这里有一个关于移位的问题stackoverflow.com/a/337572/5743988,答案用你的方法。这个问题stackoverflow.com/q/3637702/5743988 是关于按位与的。我在 64 位中没有看到关于
|的任何问题
标签: javascript math binary bit-manipulation