У меня есть способ получить информацию EDID о мониторах с nVidia API, это дает мне массив из 128 неподписанных символов. Однако при чтении в формате данных edid на wikipedia я заметил, что буквы в идентификаторе производителя (байты 8-9) представлены в виде 5-битных чисел, поэтому я не знаю, как я читаю это на C++ в качестве значимых данных ,Как разбирать данные чисел из EDID
Мой план состоял в том, чтобы просто определить тип структуры, который соответствовал формату edid, и передать мой массив char этому типу структуры, но я не знаю, возможно ли это сейчас, начиная с самых маленьких типов данных, которые я знаю в C++ имеют размер по одному байту.
Спасибо.
Bill.
Спасибо, Чарльз, у меня есть еще один вопрос. Данные хранятся в массиве символов, поэтому мне потребуется какой-то смещение, из которого можно считывать данные, первое число - это бит 0-4, второй бит - бит 5-9 ... так что это будет последний 3 бита первого байта и первый бит второго байта и т. Д. Я не знаю, как я начну читать из некоторого смещения от char –
Точно так же вы должны обращаться к смещению в массиве символов обычно, используя '[]' оператор. Если вы хотите выполнить бит операцию для извлечения 5 бит второго байта, например, вы можете сказать 'array [1] & 0x1F' –