问题描述
- 求助 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表示的是八进制数~
解决方案三:
030是8进制的表示方式,转换成int十进制num就是24
解决方案四:
第一种可能:
以0开头的int数字 Java编译器默认为8进制解析
解决方案五:
不用解释,0x是16进制,0是8进制。
30 = 3 * 8 + 0 * 8 = 24。
解决方案六:
0开头的是8进制数。
解决方案七:
030表示的是八进制的
解决方案八:
数字以零开头,计算机会把它认为是八进制数
解决方案九:
你多加了个0 ,系统默认成8进制了
解决方案十:
那是八进制,0x30十六进制,为48。
时间: 2024-11-02 06:08:02