Java 中的数字文字 - 八进制?
Numeric literals in Java - octal?
这是 java 中关于数据类型的一些代码:
class Test
{
public static void main(String args[])
{
int i = -0777;
System.out.println(i);
}
}
以上代码的输出为-511
如果代码改为:
class Test
{
public static void main(String args[])
{
int i = -777;
System.out.println(i);
}
}
输出为-777。
为什么输出不同???这段代码背后做了哪些计算???
-0777
被编译器视为八进制数(以 8 为底),其十进制值为 -511 (-(64*7+8*7+7))。 -777
是十进制数。
这是 java 中关于数据类型的一些代码:
class Test
{
public static void main(String args[])
{
int i = -0777;
System.out.println(i);
}
}
以上代码的输出为-511
如果代码改为:
class Test
{
public static void main(String args[])
{
int i = -777;
System.out.println(i);
}
}
输出为-777。
为什么输出不同???这段代码背后做了哪些计算???
-0777
被编译器视为八进制数(以 8 为底),其十进制值为 -511 (-(64*7+8*7+7))。 -777
是十进制数。