Мне нужно извлечь определенную часть (нет битов) типа данных short
в C.
Для примера у меня есть двоичный код 52504 как 11001101000 11000, и я хочу, чтобы первые 6 (FROM LSB → MSB i.e 011000 десятичных 24) битов и остальное 10 бит (11001101000 десятичное число 820).
Аналогично, я хочу, чтобы эта функция была слишком обобщенной, чтобы извлечь конкретное количество бит, заданное "start" и "end" (например, куски бит, эквивалентные некоторому десятичному значению).
Я проверил другие сообщения, но это не помогло, так как заданные функции не слишком обобщены.
Мне нужно что-то, что может работать для типа данных short
C.
Изменить
У меня есть короткий массив размером 2048 байт. Где каждый пиксель имеет 10 бит. Таким образом, мой 16 бит, состоящий из каждого байта, занимает некоторое время 2 пикселя данных, иногда 3 пикселя данных.
Как
(PIXEL: 0,1) 10 BITS + 6 BITS
затем (PIXEL: 1,2,3) 4 BITS (оставшиеся бит 1-го пикселя) + 10 BITS + 2 BITS.
и т.д. этот шаблон продолжается... Итак, все, что я хочу, чтобы извлечь каждый пиксель и сделать целый массив, чтобы каждый пиксель был занят wholy в WHOLE BYTE (из 16 бит), как.. 1 байт должен содержать 1 DIX PIXEL, другой BYTE должен содержать другое значение PIXEL всего 16 бит и т.д. И т.д.