2 qq 17452939 qq_17452939 于 2015.05.25 23:17 提问

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

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

13个回答

guochaoxxl
guochaoxxl   2015.05.26 06:58
已采纳

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

qq_17452939
qq_17452939 080编译会出错
2 年多之前 回复
wsh1992o
wsh1992o   Rxr 2015.05.26 00:54

030表示的是八进制数~

danielinbiti
danielinbiti   Ds   Rxr 2015.05.25 23:24

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

earbao
earbao   2015.05.25 23:25

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

caozhy
caozhy   Ds   Rxr 2015.05.25 23:32

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

a1193561652
a1193561652   Rxr 2015.05.25 23:36

0开头的是8进制数。

donka
donka   2015.05.25 23:37

030表示的是八进制的

u012811312
u012811312   2015.05.26 00:16

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

mojibanbo
mojibanbo   2015.05.26 00:54

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

frank_20080215
frank_20080215   2015.05.26 06:11

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

共13条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片