关于整数前导零
我有下面的代码
int a = 01111;System.out.println("output1 = " + a);
System.out.println("output2 = " + Integer.toOctalString(1111));
和输出是
output1 = 585
output2 = 2127
我期望输出如下。
output1 = 2127
output2 = 2127
585
当我打印直接int值时,为什么会给出?我期望Java自动将值从零开始转换为八进制。
01111
和之间是什么关系585
?
回答:
前导0表示一个八进制数(以8为底)。
01111(八进制)是1 * 8 ^ 3 + 1 * 8 ^ 2 + 1 * 8 ^ 1 + 1 * 8 ^ 0 = 585(十进制)
Integer.toOctalString(1111)
将十进制数字1111转换为八进制字符串。八进制2127(2 * 8 ^ 3 + 1 * 8 ^ 2
+ 2 * 8 ^ 1 + 7 * 8 ^ 0)是1111十进制。
以上是 关于整数前导零 的全部内容, 来源链接: utcz.com/qa/402065.html