Я хочу объявить свое целочисленное число бинарным литералом. Возможно ли это на Java?
Существуют ли бинарные литералы на Java?
Ответ 1
Начиная с Java 7, вы можете представлять целые числа непосредственно в виде двоичных чисел, используя форму 0b
(или 0B
), за которой следуют одна или несколько двоичных цифр (0 или 1). Например, 0b101010
является целым числом 42. Как и восьмеричные и шестнадцатеричные числа, двоичные литералы могут представлять отрицательные числа.
Если у вас нет Java 7, используйте это:
int val = Integer.parseInt("001101", 2);
Есть и другие способы ввода целых чисел:
Как десятичные числа, такие как
1995
,51966
. Отрицательные десятичные числа, такие как-42
, на самом деле являются выражениями, состоящими из целочисленного литерала с унарной отрицательной операцией.В качестве восьмеричных чисел используется начальная 0 (ноль) цифра и одна или несколько дополнительных восьмеричных цифр (цифры от 0 до 7), например 077. Восьмеричные числа могут давать отрицательные числа; например,
037777777770
на самом деле является десятичным значением -8.В качестве шестнадцатеричных чисел используется форма 0x (или 0X), за которой следуют одна или несколько шестнадцатеричных цифр (цифры от 0 до 9, от a до f или от A до F). Например,
0xCAFEBABEL
- это длинное целое число 3405691582. Как и восьмеричные числа, шестнадцатеричные литералы могут представлять отрицательные числа.
Более подробную информацию можно найти в этом викибук.
Ответ 2
В JDK 7 возможно:
int binaryInt = 0b101;
Просто префикс номера 0b
.