В мире ПК байт обычно обозначает выравнивание границы памяти в 8 битов, которое компьютер рассматривает как единое целое. В мини-компьютерах и компьютерах с мэйнфреймами также возможны более длинные последовательности, такие как 16 и 32 бита (соответственно, полные слова и двойные слова).
Но в мире дистанционного зондирования датчики / детекторы используются для измерения изменений интенсивности излучения от атмосферы и Земли с использованием их собственных радиометрических разрешений, таких как 6-битное, 10-битное и 12-битное. Таким образом, изображение необработанных данных, полученное с помощью дистанционного считывания, полученное наземной станцией, всегда упаковывается в виде 6-битных, 10-битных или 12-битных потоков BCD. Эти данные хранятся в отсканированном виде по отсканированной линии.
Моя работа состоит в том, чтобы читать этот вид отсканированной строки один за другим в виде открытого двоичного файла и некоторое время сохранять в неподписанном исходном буфере символа. Для 6-битного потока я должен масштабироваться до 8-битного (один байт), а для 10-битного или 12-битного потока я сделаю их масштабируемыми беззнаковыми короткими целыми числами. Наконец, я должен получить неподписанный символ (для 6-битного) или неподписанный короткий целевой буфер.
Не могли бы вы показать мне, как это сделать? Демонстрация кода C / C ++ будет высоко оценена! Спасибо.
10101010 01110101 00011001
| |
-----------
10-bit BCD
10101010 01110101 00011001
| |
-----------
10-bit BCD
10101010 01110101 01100110
| |
------------
10-bit BCD