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