#java #binary
#java #двоичный
Вопрос:
В Java, если вы хотите записать число, используя его двоичное представление, вы можете написать
System.out.println(0b0001);
Который выведет 1
Если вы напишете конкретно 32 бита, он будет интерпретировать это как 2-дополняющий ie:
System.out.println(0b11111111111111111111111111111110);
Выведет -2
Как я мог бы написать 2-дополнение для числа, которое не является 32-битным? (в частности, для числа больше 32 бит, например, long)
Ответ №1:
Вы должны поставить L
после него, указывая, что это long
.
long val =0b111111111111111111111111111111111111111111111111111111111101100L;
System.out.println(val);
С принтами
-20
Комментарии:
1. Да, я знаю, как сделать long, но это не 2-дополнение, а просто число, если бы оно было закодировано с 2 дополнениями, оно было бы отрицательным, поскольку начиналось с 1
2. Я изменил свой ответ.