当前位置: 首页 > 面试题库 >

为什么`08`认为`int`超出范围,`07`而低于int ?

华旭
2023-03-14
问题内容

为什么08认为int超出范围,07而低于int ?


问题答案:

在Java和其他几种语言中,以开头的整数文字0被解释为八进制(基数8)的数量。

对于单位数(比其他0809,这是不允许的),结果是一样的,所以你可能没有意识到他们被解释为八进制。但是,如果你写的数字的有效位数不止一个,那么结果可能会让你感到困惑。

例如:

010 ==  8
024 == 20

由于八进制文字通常不是你想要的,因此请务必小心,切勿以开头的整数文字0,除非你当然实际上是在尝试自己写零。



 类似资料:
  • 问题内容: 在Java中,我使用的是方法,但不确定为什么它不会引发“索引不足”错误。 字符串的索引从0到4开头,但是基于我可以调用foo.substring(0)并获取“ abcde”的事实,该方法将startIndex和endIndex作为参数。 那么为什么substring(5)起作用?该索引应超出范围。有什么解释? 此代码输出: 当我用6替换5时: 然后我得到错误: 问题答案: 根据Java

  • 问题内容: 目前,我正在使用Java处理数据类型,如果我正确理解该类型,则可以接受介于-9,223,372,036,854到+9,223,372,036,854,775,807之间的值。现在,你可以在下面看到,我创建了一个Long变量,名为,尽管当我将9223372036854775807插入为值时,我收到一条错误消息: “ int类型的文字9223372036854775807超出范围。” 我不

  • 问题内容: 我有一列设置为尝试插入诸如的数字时,它表示超出范围。为什么? 问题答案: 在 MySQL中,An 存储在4个字节上,因此只能包含和之间的值。 大于; 因此它不适合-看起来您将不得不使用 。 有关此信息,请参见MySQL手册的“ 数据类型- 数值类型” 部分 。

  • 问题内容: 我编写了这段代码,将整个以10为底的数字转换为二进制。我相信代码就是它所需要的一切,但是我无法让ArrayLists正常工作。我已经在这个网站上花了几个小时,而其他人则尝试了无数次更改,但无济于事。我已经获得了可以在没有和错误的情况下进行编译的代码,但是一旦输入int程序就会崩溃。 这是代码: 这些是我输入数字时Java抛出的异常。 我希望这是足够的信息。 问题答案: 在您的代码中,您

  • 问题内容: 有没有办法为一系列整数创建一个? 就像我要流式传输1到1000的值一样,我可以调用一些静态工厂来流式传输该范围吗? 问题答案: 没关系,我不知道为什么在阅读了几次后在API文档中错过了它…

  • 在我的代码中,我有以下行: 在野外,它生活在一个枚举中: 我从sonarqube那里得到以下提及: 使“形状”暂时或可序列化。可序列化类中的字段本身必须是可序列化的或瞬态的,即使该类从未显式序列化或反序列化。这是因为在负载下,大多数J2EE应用程序框架都会将对象刷新到磁盘,而一个据称具有非瞬态、非序列化数据成员的可序列化对象可能会导致程序崩溃,并为攻击者打开大门。 据我所知,int[](和int[