Порядок битов имеет значение, когда поле использует часть байта или охватывает байты, начинающиеся или заканчивающиеся (или оба) частью пути через байт.
Пример: 2 байта данных: первые 235 (десятичные), вторые 173 (десятичные), также известные как шестнадцатеричные EB и AD.
Я хочу, чтобы битовое поле начиналось с четвертого бита, до 12-го бита. Итак, пропустите 3 бита, сделайте 9-битное целое число без знака из следующих 9 бит.
Я утверждаю, что есть 4 возможных результата:
byteOrder, bitOrder
* bigEndian, bigEndian results in hex 0BA or decimal 186
* littleEndian, littleEndian results in hex 1BD or decimal 445
* littleEndian, bigEndian results in hex 05D or decimal 93
* bigEndian, littleEndian results in hex 1DE or decimal 478
Я видел первые 3 из этих 4 в данных. большие, большие и маленькие, маленькие легко понять.
Подсказка для решения этой проблемы.
Если порядок байтов имеет порядковый номер, запишите байты слева направо, увеличиваясь вправо.
Если порядок байтов имеет младший порядок, запишите байты справа налево, увеличиваясь влево.