一尘不染

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

java

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


阅读 514

收藏
2020-03-01

共1个答案

一尘不染

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

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

例如:

010 ==  8
024 == 20

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

2020-03-01