Dezimal zahlen in Binär zahlen umwandeln - problem
-
Hi ich versuche gerade ein Programm zu schreiben das eine Dezimal Zahl einließt und diese dann als Binär zahl ausgibt. blos irgendwie klappt das ganze noch nicht so ganz.... Am Schluss und am Anfang stimmt immer i-wie was nicht... vielleicht könnt ihr ja mal einen blick drauf werfen:
int main() { int z1[9999], z2, z3, r(0); cout << "Geben Sie eine Dezimal Zahl ein!\n\nEingabe: "; cin >> z2; do { z2 = z2/2; z3 = z2%2; cout << z3; } while(z2!=0); }
Ich hatte es dafor mit einer for schleife versucht, da war aber der selbe Fehler...
Hoffe ihr könnt mir helfen
fg
-
Überleg dir deinen Algorithmus anhand dieses Rechners hier:
http://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htmDann kommst du selbst auf die Lösung.
-
tut mir leid ich checks nicht.... ausser das bei mir die zahl wahrscheinlich sowieso falsch herum ist... wie wärs mit ein bisschen mehr hilfe ;)?
-
Tausch mal deine beiden Variablen in der Schleife... (bei deinem Code verwirfst du erst dein unterstes Bit)
Und wie du schon erkannt hast, gibst du damit die Bits verkehrt herum aus.
Hier im Forum gibt es aber viele andere Beiträge zu diesem Problem (such mal nach "Binärzahl" o.ä.). Als Lösung gibt es dann eine rekursive Funktion!Und poste dann deine Lösung, danke.
-
hmmmm sorry aber mit der suche finde ich nichts brauchbares... wenn ich binär eingebe werden mir 500 themen oder so angezeigt...
-
wurstuk schrieb:
int main() { int z1[9999], z2, z3, r(0); cout << "Geben Sie eine Dezimal Zahl ein!\n\nEingabe: "; cin >> z2; do { z2 = z2/2; z3 = z2%2; cout << z3; } while(z2!=0); }
#include <iostream> using namespace std; int main() { int z, tmp = sizeof(int)*8; cout << "Geben Sie eine Dezimal Zahl ein!\n\nEingabe: "; cin >> z; while (tmp--) cout << ((z>>tmp)&1); cout << endl; }
-
hmmm könntest du den code noch kurz erklären?^^ ich check da nämlich nicht alles...
trotzdem schonmal danke