当前位置: 首页 > 知识库问答 >
问题:

JavaLong.MAX_VALUE属性抛出整数太大异常!包括L[重复]

柳梓
2023-03-14

我正在使用JavaSE开发工具包8更新25(64位)。我已经从Java™教程中阅读了“原始数据类型”java教程,根据该规范,长类型可以容纳(2的64次方)-1的最大值,即18446744073709551615。

但是下面的代码会抛出“整数太大”的错误消息。

public class SampleClass
{
    public static void main (String[] args)
    {        
        Long longMaxValue= 18446744073709551615L /* UInt64.MaxValue */;
    }
}

此外,Long.Max_Value仅返回 9223372036854775807 。为什么?我需要将值 18,446,744,073,709,551,615 存储为 java 中的常量。我该怎么办?

任何帮助都会受到感激。

共有1个答案

黄丰
2023-03-14

long的最大正值是(2的63次方)- 1,因为Java中的long是有符号的,因此可以保存负整数。最左边的位保留给符号,剩下63位给值本身。

如果< code>Long,可以使用< code>BigInteger。MAX_VALUE对您来说不够大。

如果您正在使用Java 8,并且希望将<code>long

例如:

long l = parseUnsignedLong("18446744073709551615");

如果使用< code > system . out . println(l)打印< code>l,您将看到一个负值,但是如果打印< code > long . tounsignedstring(l),您将看到无符号值。

 类似资料:
  • 我遇到了这样一个问题,如果组合的一个属性为null(请注意,它不是ID),Javers会抛出一个异常: 或

  • 异常是[ERROR: flutter/lib/ui/ui_dart_state.cc(177)]未处理的异常:MisSingPluginExcture(在通道plugins.flutter.io/path_provider上没有找到方法getTemporaryDirectory的实现)。我实现这个包到我的样本项目,它的工作。但是当我试图实现我的官方项目时,它抛出了异常。我怎么才能修好它?非常感谢

  • 抛出异常的行为是否可能抛出不同的异常? 为了抛出异常,必须(可选地)分配新对象,并调用其构造函数(隐式调用fillinstacktrace)。在某些情况下,听起来像addSupressed也被称为。那么如果没有足够的内存会发生什么呢?JVM是否需要预分配内置异常?例如,(1/0)会抛出OutOfMemoryError而不是ArithmeticException吗? 此外,构造函数是一个方法调用,因

  • 假设我想在收到特定异常时恢复某个值,否则返回失败的未来。我希望是这样的: 如果函数会抛出检查过的异常,我想在链式方法中处理它。我尝试过和,但都无法编译。是否为这种情况提供了任何解决方案?我知道接口是方法的参数,它不会抛出任何异常——在这种情况下,我只想返回已经失败的未来。我想找到使用Java8的解决方案。

  • 问题内容: 嗨,我很难理解为什么这不起作用 莫尔斯电码只是一串数字。问题是它说Integer number太大:4545454545,但是我确定Long可以更长。 问题答案: 您需要使用或将其限定为。默认情况下,是文字,超出的范围。 建议使用大写字母以避免混淆,因为和看起来很相似 你可以做 : 要么 根据JLS 3.10.1 : 如果整数文字 以ASCII字母L或l(ell) 为后缀,则其类型为l

  • 在许多地方,我得到了几个已检查的异常,如IOException、ParseException、JSoneException等。我必须做出两个选择之一- > 通过在方法签名的末尾添加抛出来抛出相同的异常。 将检查的异常包装在RuntimeException(或一些自定义实现)中,然后抛出它,以便调用者不必在任何地方添加throws子句并检查异常。 在第一种情况下,我将不得不到处抛出,但我的客户可以通