Das Problem kommt zustande, da int
bei C++ nur einen Bereich von 2^{32} abdeckt. Nutze stattdessen: long long
.
Wir können ohne Array auskommen, doch string
sei erlaubt, da der Datentyp die Arbeit sehr vereinfacht bzw. wir die Binärzahl damit richtig herum zusammensetzen können:
#include <iostream>
#include <string>
int main()
{
long long n;
std::cout <<"Enter a decimal number";
std::cin >> n;
std::string result;
while (n > 0)
{
result = std::to_string(n % 2) + result;
n /= 2;
}
std::cout << result;
return 0;
}
Wir müssen das Ergebnis aus n%2
in einen String umwandeln, damit wir die Teile mittels der Variable result
zusammensetzen können. Hierzu verwenden wir die Funktion to_string()
.
Programm starten: