This question already has answers here:
Why are integer literals with leading zeroes interpreted strangely?

(8个答案)



Why is 09 “too large” of an integer number? [duplicate]

(5个答案)


6年前关闭。





我在以下几行出现错误:“类型不匹配:无法从int转换为short”

short a;
a=09;


但不在

a=9;


为什么会这样呢。

最佳答案

在数字前使用0表示八进制。您只能在00到07之间使用它,因此您无法进行转换(它也不能与int一起使用,因为它超出了范围,即使它看起来像试图进行隐式转换也是如此)。

从计算上来说,09只是一个不存在的数字。

关于java - 以下列方式提供值时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17675551/

10-13 01:11