Я создал программу, предназначенную для преобразования числа в его двоичные компоненты, но код по какой-то причине не распечатывает его, хотя он работает чисто. Я создал две функции, а затем использовал функцию main для вызова второй функции, которая содержит первую функцию.
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int bin_position(int num){
int n = 0;
if (num == 1){
return 0;
}
while (pow(2,n) < num){
n++;
if (pow(2,n) == num){
return n;
}
if (pow(2,n) > num){
n--;
return n;
}
}
}
void bin(int num){
vector <int> binary_number;
for(int i = 0; i <= bin_position(num); i++){
binary_number[i] = 0;
}
while (num != 0){
binary_number[bin_position(num)] = 1;
num = num - pow(2, bin_position(num));
}
for(int i: binary_number){
cout << i << " ";
}
}
int main()
{
bin(4);
}