java整数处理

mri*_*ka3 3 java

当我运行这个程序时,它输出-43.

public class Main {
    public static void main(String[] args) {
        int a=053;
        System.out.println(a);
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么是这样?053怎么变成-43?

ick*_*fay 8

我不知道它是如何变为负数,但是开始一个整数,0指定它是八进制(基数为8).5343垒是十垒.