Перевод bool[16] (bin) в unsigned short (oct)
Имеется bool cw[16] надо перевести его в 8-ый код для вывода на монитор.
Какие есть для этого функции или библиотеки?
Ответы (1 шт):
Автор решения: gbg
→ Ссылка
#include <iostream>
#include <bitset> //ключ к решению всех проблем
using namespace std;
int main()
{
constexpr size_t length = 16; //длина массива
bool input[length]={0};
bitset<length> bits;
//пока ничего интересного - копируем наш массив в bitset
for(size_t i=0;i<length;++i )
{
bits[i]=input[i];
}
//вся магия тут - мы пользуемся тем, что cout можно переключить
//на вывод чисел в восьмеричной системе при помощи модификатора
//oct, а также тем, что можно получить числовое представление того,
//что лежит в bitset
cout << oct << bits.to_ulong() << endl;
return 0;
}