java - 八进制值赋值给 int

标签 java

在一个测验中,我发现了一个问题,我需要用下面的程序计算

 public static void main(String[] args) {
    short x = 0;
    int b = 08; 
    x +=b;

    System.out.println("" + b + x );
}

编译错误

 int b = 08;

因为它是一个八进制值,所以我尝试了一些不同的值

 int b = 07 // working fine (decimal of same is 7)
 int b = 08 // (Decimal value 8) // Compilation error
 int b = 09 // (Decimal value 9) // Compilation error
 int b = 010 // (Decimal value 8) // No Compilation error

因为 08 和 010 具有相同的十进制数,那么为什么 08 会出现编译错误。

最佳答案

因为在八进制 表示法中,010 != 08。实际上,08八进制数系统 中不存在。您只能使用数字 0-7(以 0 开头)。

关于java - 八进制值赋值给 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32645351/

相关文章:

java - 如何为 Android Fragment(Tabs Activity) 实现 onBackPressed

java - 更合适的说法是分摊 O(1) vs O(n) 插入未排序的动态数组?

java - Eclipse 的 JSON 库

java - 我需要关闭 Java 中的 IO 流吗?

java - 在 WLSTInterpreter 中使用 displayLogs() NameError : displayLogs

java - Java 7 中的 Beans Binding 将被什么取代?

java - java Netbeans JTL 中的 ClassDefNotFound 和 ClassNotFoundException

java - 如何在 Spring Boot Actuator 中注册匿名 HealthIndicators

Java 首选项和国际化 (i18n)

java - 具有双嵌入键的 SqlResultSetMapping