Существуют ли бинарные литералы на Java?

Я хочу объявить свое целочисленное число бинарным литералом. Возможно ли это на Java?

Ответ 1

Начиная с Java 7, вы можете представлять целые числа непосредственно в виде двоичных чисел, используя форму 0b (или 0B), за которой следуют одна или несколько двоичных цифр (0 или 1). Например, 0b101010 является целым числом 42. Как и восьмеричные и шестнадцатеричные числа, двоичные литералы могут представлять отрицательные числа.

Если у вас нет Java 7, используйте это:

int val = Integer.parseInt("001101", 2);

Есть и другие способы ввода целых чисел:

  1. Как десятичные числа, такие как 1995, 51966. Отрицательные десятичные числа, такие как -42, на самом деле являются выражениями, состоящими из целочисленного литерала с унарной отрицательной операцией.

  2. В качестве восьмеричных чисел используется начальная 0 (ноль) цифра и одна или несколько дополнительных восьмеричных цифр (цифры от 0 до 7), например 077. Восьмеричные числа могут давать отрицательные числа; например, 037777777770 на самом деле является десятичным значением -8.

  3. В качестве шестнадцатеричных чисел используется форма 0x (или 0X), за которой следуют одна или несколько шестнадцатеричных цифр (цифры от 0 до 9, от a до f или от A до F). Например, 0xCAFEBABEL - это длинное целое число 3405691582. Как и восьмеричные числа, шестнадцатеричные литералы могут представлять отрицательные числа.

Более подробную информацию можно найти в этом викибук.

Ответ 2

В JDK 7 возможно:

int binaryInt = 0b101;

Просто префикс номера 0b.