Записать значения дискретных каналов в бинарный файл. С++ - вопрос №2831159

Есть массив из значений дискретных каналов.

int discretCh = 6; // всего 6 дискретных каналов

Значения всегда будут либо 0 либо 1. Могут вообще быть только 0000000 либо 111111

int ChValue [6] = {000011}

в книге описано, как нужно записывать эти значения в бинарный файл. Пример:

For a set of six status inputs (000011)

a) Write these status inputs as a binary number (110000).

b) Then pad the number out to a 16 bit number (0000 0000 0011 0000).

c) Translate this to a hexadecimal value (00 30).

d) The data is then stored in LSB/MSB format (30 00).

Важно, что от количества каналов зависит размер переменной, в которую записывается значение (30 00)

Нужно проверить

sizеVar = discretCh/16 округление в большую степень

if (sizеVar <= 1) 2 байта для хранения

if (sizеVar > 1 || sizеVar = 2 ) добавляем еще 2 байта

if (sizеVar > 2 || sizеVar = 3 ) добавляем еще 2 байта

Все это я записываю в файл, строка должна получиться вида:

05 00 00 00 9B 02 00 00 08 FD FA 04 48 00 3D 00 74 FF 0A FE 30 00

именно в последних 2х байтах должны храниться дискретные значения.

Понимаю, что нужно записать последовательность значений (000011) в целое число, пробовала, но нули отбрасываются(
Подскажите, пожалуйста! Как реализовать это? Примеров очень мало
06.04.18
0 ответов
Ответов пока нет
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store