Почему bin (4) не показывает 1 0 0? - PullRequest
0 голосов
/ 22 декабря 2019

Я создал программу, предназначенную для преобразования числа в его двоичные компоненты, но код по какой-то причине не распечатывает его, хотя он работает чисто. Я создал две функции, а затем использовал функцию 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);
}
...