Технологии
Записать значения дискретных каналов в бинарный файл. С++ - вопрос №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) в целое число, пробовала, но нули отбрасываются(
Подскажите, пожалуйста! Как реализовать это? Примеров очень мало
апрель 6, 2018 г.
-
Всего ответов: 0
Похожие вопросы
Как сделать так, чтобы при двойном нажатии левой кнопки мыши в клиентской части окна, на экране появлялся MessageBox с сообщением Ура! А при
апрель 21, 2022 г.
Сформировать файл “ссуда ” , имеющую следующую структуру: фамилия, оклад, размер ссуды, отчисляемый процент, остаток по выплате ссуды. Вывести список работников предприятия, имеющих задолженность боль
июнь 9, 2021 г.
есть готовая программа на языке С++, нужно чтобы она адекватно работала и выводила графики в конце
май 8, 2021 г.