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开头~