在我的实际项目中偶然发生了这里是我修改的小程序。
我不明白为什么它会给出输出10?
public class Int
{
public static void main(String args[])
{
int j=012;//accidentaly i put zero
System.out.println(j);// prints 10??
}
}
之后,我输入两个零,仍然给出输出 10。
然后我改变012至0123现在它输出83?
谁能解释为什么?
然后我将 012 更改为 0123,现在它给出输出 83?
因为,它被视为八进制基数 (8),因为该数字前面有 0。所以,它对应的十进制值为10。
012 :
(2 * 8 ^ 0) + (1 * 8 ^ 1) = 10
0123 :
(3 * 8 ^ 0) + (2 * 8 ^ 1) + (1 * 8 ^ 2) = 83
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)