Пример реализации функции, которая принимает булевый массив из 16 элементов и возвращает unsigned short в восьмеричном представлении: 1
unsigned short binary_to_short(bool input[]) { unsigned short result = 0; for (size_t i = 0; i < 16; ++i) { result |= (input[i] << i); // берём бит на i-ой позиции, сдвигаем его на i, добавляем к числу 1 } return result;}
Также для перевода булевого массива в восьмеричное представление можно использовать библиотеку bitset. 2 Для этого нужно скопировать массив в bitset, а затем получить числовое представление с помощью метода to_ulong(). 2