gpt4 book ai didi

Java 左移位返回错误值

转载 作者:行者123 更新时间:2023-11-29 07:15:20 25 4
gpt4 key购买 nike

我在 Java 中遇到左位移位返回不正确值的问题...

以108 << 60为例。答案应该是*:

124515522497539473408

Java 正在返回这个值

-4611686018427387904

对于这个语句:

System.out.println(108L << 60L);

为什么???这两个值都是强制 longs...所以我看不出任何位值应该被截断的原因。我在这里缺少什么?

*引用:Wolfram Alpha

最佳答案

您移动的长度超出了 long 的长度(64 位)。 108占七位,所以108L << 60L需要 67 位才能正确表示它。实际上,由于它是有符号类型,您需要 68 位才能避免将其解释为负数。

关于Java 左移位返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060416/

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