Я строю двоичный протокол для обработки n
числа 10-битных значений аналогового входа. Я пытаюсь найти способ наилучшим образом согласовать серию 10-битных значений с типом данных, который облегчает выполнение логических операций. Например,
int main() {
int array[] = {1024,343,512,256,223};
char output[7];
for (int i = 0; i < 5; i++ ) {
int addition = (array[i] << (10*1));
output = output && addition;
}
for (int i = 0; i < 5; i++ ) {
int printval = ((output >> (10*1)) && 0b1111111111);
// this code is not working but should convey the idea with the intended output being the array elements in order.
printf("Array %d: %d\n", i, printval);
}
}
Если бы мне удалось установить размер переменной равным 7 байтам, как я сделал с выводом, которого достаточно для хранения 5-ти 10-битных типов данных и выполнения битового сдвига по отношению к замаскированным элементам массива, может сработать следующее ,
Проще говоря, у меня есть 5 переменных, в этом примере мы скажем, что они имеют длину 4 бита; 1101, 1011, 1111, 0010, 0001 и я хочу соединить их так, чтобы они сохранялись последовательно в массиве байтов / символов, поэтому в этом случае
array[0] = 11011011
array[1] = 11110010
array[2] = 00010000
И написать средство для извлечения данных из n
битов на основе его позиции (не элемента, а битовой позиции) в массиве, где каждая переменная данных, которая должна быть извлечена, равна 10 битам.