Еще одно решение для вас; Я видел ваш вопрос, и с использованием битового набора ответы работают довольно хорошо. Но я придумал для вас другое решение, если вы не хотите использовать заранее созданную структуру битового потока и иметь более «сырой» формат необходимых операций. У нас есть функция, которая выполняет все необходимые операции для преобразования любого заданного целого числа в двоичное представление в формате массива по вашему запросу. Вот код:
#include <iostream>
#include <cmath>
bool* theFunction(int);
int main() {
bool *p;
int denNum;
std::cout << "Enter a den number!";
std::cin >> denNum;
p = theFunction(denNum);
for (int i = 0; i < 16; i++ ){
std::cout << *p ;
p++;
}
return 0;
}
bool* theFunction(int number) {
int maxPot=2;
bool pivot;
int i=0;
static bool arr [16];
//Number's conversion to binary
while(number> 1){
while(maxPot<number){
maxPot=pow(maxPot,2);
}
maxPot=maxPot/2;
if( number>= maxPot){
arr[i]=1;
number = number - maxPot;
}
else
arr[i]=0;
i++;
}
//Loop to set 0 to leftover bits
if(i<16){
for(i;i<16;i++)
arr[i]=0;
}
//Loop for reversing the array
for(int b=0; b<8 ; b++){
pivot=arr[b];
arr[b]=arr[i];
arr[i]=pivot;
i=i-1;
}
return arr;
}