如何在java中设置八进制的值?

2022-09-04 23:42:48

我正在尝试编写以下代码,但它给了我错误,请帮助我。

    int six=06;
    int seven=07;
    int abc=018;
    int nine=011;
    System.out.println("Octal 011 ="+nine);
    System.out.println("octal O18 =" + abc);

为什么我不能给变量018和019,i可以给变量赋值020和021。为什么会发生这种情况?这背后的原因是什么 请告诉我。
我收到以下错误

            integer number too large: 018
            int eight=018;

答案 1

Octal是以8为基数的数字系统,因此这意味着数字可以从0到7,在八进制数系统中不能使用数字8(以及9)。


答案 2
// Decimal declaration and possible chars are [0-9]
int decimal    =  495;        

// HexaDecimal declaration starts with 0X or 0x and possible chars are [0-9A-Fa-f]
int hexa       =  0X1EF; 

// Octal declaration starts with 0 and possible chars are [0-7] 
int octal      =  0757;  

// Binary representation starts with 0B or 0b and possible chars are [0-1]  
int binary     =  0b111101111; 

如果数字是字符串格式,则可以使用以下方法将其转换为int

String text = "0b111101111";
int value = text.toLowerCase().startsWith("0b") ? Integer.parseInt(text.substring(2), 2)
                                  : Integer.decode(text);

推荐