gpt4 book ai didi

java - 为什么 -2>>>1 在 Java 中等于 2147483647

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:36 24 4
gpt4 key购买 nike

-2的补码是100000...01

-2 的补码是 1000000...10

-2 >>> 1 

根据 >>> 定义左移 0

应该是01000......1,为什么变成了0111111..11

最佳答案

为了生成 2 的二进制补码表示(即 -2 的表示),您从 2 的表示开始,翻转它的所有位,并将 1 添加到结果中:

00000000000000000000000000000010 -- This is 2
11111111111111111111111111111101 -- This the inverse of 2
11111111111111111111111111111110 -- This is the inverse of 2, plus 1

-2 的二进制表示是 1111111111111111111111111111110 ( demo )。

不带符号扩展将其右移一位产生

01111111111111111111111111111111

这正是您得到的结果。

关于java - 为什么 -2>>>1 在 Java 中等于 2147483647,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35214602/

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