gpt4 book ai didi

java - 按负数移动

转载 作者:搜寻专家 更新时间:2023-11-01 01:13:12 24 4
gpt4 key购买 nike

我对这里的这个表达很困惑。我是一名 Java 程序员,但我不太精通位操作。

我想我正确理解了以下内容:

Input : 1 << 10
Output: 0000000000000000000010000000000

对于正数,我认为是将 1 移动 10 位。

困惑是当我有以下内容时:

int val = -10 (binary representation : 1111111111111111111111111110110 )
Input : 1 << val
Output: 0000000010000000000000000000000

如果有人能向我解释负数左移或右移的含义,那就太好了。

最佳答案

<< (和其他移位运算符)对于 int 只取其右操作数的 5 个最低有效位, 6 表示 long , 因为转移 int 没有意义超过 31。

在你的例子中是 0b10110 = 22 .

因此1 << (-10)相当于1 << 22 .

关于java - 按负数移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18771704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com