Java中的数字文字-八进制?
以下是java中有关数据类型的一些代码:Java中的数字文字-八进制?,java,literals,octal,Java,Literals,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
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
被编译器视为十进制值为-511(-64*7+8*7+7)的八进制数(以8为基数)-777
是一个十进制数。我想对这个问题投赞成票,但标题太笼统和不具体。这个问题与数据类型无关。这是关于数字文字。如果我通过标准输入输入“-077”,会发生什么?@RishavKundu“-077”是一个字符串。有许多方法可以解释/解析它。@RishavKundu,这取决于您如何从STDIN中读取它。例如-Scanner sc=新扫描仪(System.in);System.out.println(sc.nextInt())如果键入-077,代码>将打印-77。