Так как SE 7 Java позволяет указывать значения как двоичный литерал. Документация говорит мне, что «byte» - это тип, который может содержать 8 бит информации, значения от -128 до 127.Java-бинарные литералы - значение -128 для байта
Теперь я не знаю, почему, но я не могу определить 8 бит, но только 7, если я попытаюсь назначить двоичный код литерал байт в Java следующим образом:
byte b = 0b000_0000; //solves to the value 0
byte b1 = 0b000_0001; //solves to the value 1
byte b3 = 0b000_0010; //solves to the value 2
byte b4 = 0b000_0011; //solves to the value 3
И так далее, пока мы доберемся до последних нескольких possibilitys, используя эти 7 бит:
byte b5 = 0b011_1111; //solves to the value 63
byte b6 = 0b111_1111; //solves to the value 127
Если я хочу, чтобы сделать его отрицательные числа я должен добавьте вперед - вперед следующим образом:
byte b7 = -0b111_1111; //solves to the value -127
Теперь половина проблемы, которую я имею, заключается в том, что я использую всего 7 бит для описания того, что они говорят мне, это 8-битный тип данных. Вторая половина состоит в том, что они, похоже, не являются потоковыми как дополнение к двум, если не использовать 32-битный тип int, где я могу определить все 32 бита (включая бит индикатора).
Теперь, когда я искать о том, как отобразить в зоне число -128 мне сказали, чтобы сделать это таким образом без каких-либо дальнейших объяснений:
byte b8 = 0b1111_1111_1111_1111_1111_1111_1000_0000;
я могу ясно видеть, что последние 8 бит (1000 0000) действительно представляют -128 в двойках compelment с использованием 8 бит, до сих пор я никогда не был смущен больше и попытаться задать свои вопросы:
- Isnt выше 32 разрядное Н.Р. 32 Bit (ява) INT значение?
- Почему я могу назначить 32-разрядное значение для 8-битного (java-) байтового типа?
Или вообще: Почему я должен назначить его таким образом?
Любые ссылки/информацию об этом было бы замечательно! Благодарим вас за то, что вы взяли, чтобы прочитать это, а также любую дополнительную информацию заранее.
С уважением Jan
does 'byte b8 = 0b1000_0000' work, также искать двоичное представление 2-го дополнения –
Нет байт b8 = 0b1000_0000 не работает, к сожалению, я потерял научную направленность на этот вопрос, но я думаю, что это, как ожидается, не сработает. Интересно, что на этот вопрос никогда не было полного ответа, нужно проверить, как установить вознаграждение. – JBA