javascript - 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))
解决方案
推荐阅读
- python - Python 3 BS4 - 在指定的第一个返回
- java - 创建 mongodb 存储库中的 Spring Data 错误
- python - 在嵌套的for循环中对dict和list中的项目进行成员资格检查,而不使用集合?
- docker - 将持久卷声明添加到容器中的现有文件
- sql - Git 中的多版本代码支持
- php - Silverstripe 4 - 下拉字段错误
- javascript - 如何获取prev/next wp_link_pages的链接并用js重定向?
- docker - IBM Cloud Private Docker 以 root 而非 ubuntu 身份登录
- php - 将 CodeIgniter 中的数据插入 VB.NET 客户端
- vue.js - 如何在 v-select 的选定选项中为标签使用自定义模板?