首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript算术右移

Javascript算术右移
EN

Stack Overflow用户
提问于 2021-06-04 05:23:32
回答 1查看 145关注 0票数 1

根据Wikipedia的说法,js算术右移和左移运算符是<<>>,虽然左移似乎工作正常,但右移似乎正在进行逐位移位,而不是算术移位

代码语言:javascript
运行
复制
> 2 >> 1
1
> 2 << 1
4
> 1 >> 1
0
> 1 << 1
2

怎样才能得到算术移位?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-04 05:50:43

我不确定您期望的值是什么。算术位移位是JavaScript所做的,但如果不使用负值,您将永远看不到它。

例如:-1 >> 1 === -1-20 >> 1 === -10

如果这些是标准逻辑位移位,则结果将取决于值的位深度,并且在JavaScript上下文中没有意义。例如,逻辑位移位和算术位移位之间的差异(为简单起见):

-1将是1111 1111:

1111 1111算术右移= 1111 1111 (仍为-1,高位“粘滞”)

1111 1111逻辑右移= 0111 1111 (现在为127)

编辑:在JS中,如果你想使用逻辑右移,你可以使用>>>而不是>>。当你这样做的时候,它在32位整数上工作。所以:-1 >>> 1 === 2147483647

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67828831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档