Почему значение 09 слишком велико для целого числа?

Они думают, что это:

Возможный дубликат:
Целое число с ведущими нулями

Но если вы проверите Integer с ведущими нулями, вы обнаружите, что вопрос задан, перед запуском jdk7 и, следовательно, он имеет более низкие исследовательские усилия. Но в jdk7 есть некоторое изменение и дополнение к целым числам. Вот ответы, которые в настоящее время охватывают jdk7.

У меня есть код:

class Test{ public static void main(String[] args){ int x=09; System.out.println(x); } } 

При компиляции она дает ошибку: целое число слишком велико: 09

Почему это так?

Опять же, если я изменю код на:

 class Test{ public static void main(String[] args){ int x=012; System.out.println(x); } } 

Теперь на выходе 10

Почему он дает выход 10 вместо 12?

Числа, начинающиеся с 0 , считаются восьмеричными – и 9 не является восьмеричной цифрой (но (условно) 0-7).


Шестнадцатеричные литералы начинаются с 0x , например 0xA .


До Java 6 не было буквальной записи для двоичного кода, и вам нужно было использовать что-то вроде

 int a = Integer.parseInt("1011011", 2); 

где второй аргумент указывает желаемую базу.


Java 7 теперь имеет бинарные литералы .

В Java SE 7 интегральные типы (байт, короткий, int и long) также могут быть выражены с использованием системы двоичных чисел. Чтобы указать бинарный литерал, добавьте префикс 0b или 0B в число.

Целочисленные литералы, начинающиеся с «0», рассматриваются как восьмеричные. Допустимые цифры: от 0 до 7.

Целые числа, начинающиеся с цифры 0, являются восьмеричными (базовые 8) номерами. Самая большая восьмеричная цифра – 7; после 07 приходит 010 (что равно десятичному 8!)

012 (восьмеричные двенадцать) – 010 (восьмеричная десятичная цифра 8) плюс 2 или десятичная 10.

09 – восьмеричный числовой литерал, хотя и недействительный.

Шестнадцатеричные числа начинаются с 0x, например 0xFFFF.

В Java не было бинарного литерала. Java 7 поддерживает их, начиная с 0b, например, 0b00100001.

Числа, начинающиеся с 0, являются восьмеричными. http://en.wikipedia.org/wiki/Octal

  • Как использовать WeakReference в разработке Java и Android?
  • Использование HttpClient и HttpPost в Android с параметрами post
  • Как проверить, является ли строка числовой?
  • Apache http client или URLConnection
  • Каков самый простой способ обратного преобразования ArrayList?
  • Что делает оператор «+ =» в Java?
  • Модель памяти Dalvik такая же, как Java?
  • Java не поддерживает множественное наследование, но неявно каждый class в java расширяет Object и позволяет еще один
  • Каков разумный порядок модификаторов Java (абстрактный, окончательный, общеansible, статический и т. Д.)?
  • Перезапустите службу, даже если приложение отключено и продолжает работать в фоновом режиме даже после закрытия приложения How?
  • Получение параметров хеширования из запроса URL
  • Давайте будем гением компьютера.