求助 int num=030;求详细解释

int num =030;
System.out.println(num);
为什么打印出来会是24呢??
求大神详细解释

楼主可以试试两个极端;你这里写的是int num = 030;由于在30前写了0就被编译器当成了8进制数据,8进制数据30就是10进制的24。你可以试试将语句改成:int num = 080;看看你的系统编译会不会报错

030是8进制的表示方式,转换成int十进制num就是24

第一种可能:
以0开头的int数字 Java编译器默认为8进制解析

不用解释,0x是16进制,0是8进制。
30 = 3 * 8 + 0 * 8 = 24。

0开头的是8进制数。

030表示的是八进制的

数字以零开头,计算机会把它认为是八进制数

030表示的是八进制数~

你多加了个0 ,系统默认成8进制了

那是八进制,0x30十六进制,为48。

int num =030;//030是八进制吖,转换成十进制可不就是24吗?
你是想问println函数的工作原理吗?println就是把()里面的内容打印输出到屏幕。

java中int 0开头为8进制

数据格式问题:规定8进制0开头~