Я пытаюсь взять четыре байта из двоичного файла и превратить их в битовую маску, которая представляет нуль для данных и 1 для метаданных.Java четыре байта для двоичной «битмаски»
Я предполагаю, что мне нужно преобразовать их в int путем их или вместе с ними, а затем сдвинуть бит, чтобы определить, установлено ли положение бит или нет.
Не могу понять, как объединить все четыре вместе, чтобы получить 32-разрядную маску, которую я могу сделать.
int mask = (((int)hbyte) & 0xff) << 8 | (((int)lbyte) & 0xff);
Это было бы объединить два вместе (пост Лоуренса Гонсалвес из другого поста), но я не могу понять синтаксис, чтобы получить четыре вместе.
Или это будет случай для Enumset, который я признаю, что я не совсем понимаю.
Любые советы будут оценены.
Спасибо.
Tony
** Просто чтобы добавить еще одну заметку, к этому, (я не уверен, что это вообще разрешено, поэтому я заранее извиняюсь, если это не так), что это лучший способ идти через мой вновь создал int и проверил, установлен ли бит или нет?
В настоящее время я использую if (((comboOfBytes >> bitmaskBit) & 1) == 0)
, но я не знаю, если это самый элегантный способ сделать проверку, которая мне нужна.
Кроме того, я все еще не совсем уверен, понимаю ли я, насколько смещение фактически позволяет проверять все 32 бита!
Еще раз спасибо
Большое спасибо Майку. Это просто работа! – Tony