【发布时间】:2017-01-22 11:45:46
【问题描述】:
我只是想尝试一些整数并将值“0013”分配给整数a。当我将值打印到输出控制台时,我得到“11”。这是什么原因造成的?为什么我没有得到 13?
int b = 0013;
System.out.println(b);
【问题讨论】:
-
它不是重复的,我问“为什么”..
-
@Teo 你是对的。
-
Java 继承了 C 和 C++ 的许多细节,包括用于八进制的前导
0(因为数字 0 看起来像八进制中的字母 o,我猜)和用于十六进制的0x(在与八进制平行,x 因为它是“十六进制”,我还在猜测)。 C 是为低级编程而设计的,其中十六进制数字特别有用,我不确定八进制是否真的有用,或者他们只是认为它们是或想要包含它们以保持完整性。早在很久以前,我就看到过在具有 6 位字符集的计算机上使用八进制数。