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