如何解决Javascript位向右旋转无法正常工作
我试图向右旋转32位,但没有加总,结果得到错误的值-我得到的是负数二进制而不是正确的二进制数。
function rotr (x,y) {
return x >>> y | (x << 32 - y)
}
其中x是数字,y是转数
对于数字0b00000000000000000011111111111111
和7
的旋转,我应该得到结果0b11101001101101011101101110100101
但是当我做console.log(rotr(0b00000000000000000011111111111111,7).toString(2))
我得到这个结果-1111111111111111110000001
有人可以解释发生了什么吗?
function rotr(x,y) {
return x >>> y | (x << 32 - y)
}
console.log(rotr(0b00000000000000000011111111111111,7).toString(2))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。