Dualzahl in Binärzahl in Array
-
Ich möchte eine Dualzahl in eine Binärzahl umwandeln. Dies ist ist auch gar keine Problem, und ich konnte es auch lösen. Nun habe ich jede einzlene Ziffer der Binärzahl in ein Array geschrieben. Nun beim auslesen, muss ich natürlich eine for-Schleife machen, welche mir jede einzelne Position des Arrays ausgibt. Nun möchte ich jedioch, dass ich nur noch etwas augebenen muss (String?). Ich habe schon versucht die einzlene Position in mit gets (txt) als String zu machen, leider ohne erfolg. Gibt es hier überhaupt eine Möglichkeit dies anderst auszugben?
Hier mein bisheriger Code:
[/cpp]
#include "stdafx.h"
#include <iostream>
#include <conio.h>using namespace std;
int Dualzahl [15];
void main()
{
int zahl,rest;cout << "Eingabe der Zahl: "; cin >> zahl;
do
{
for (int i=0; i<=14; i++)
{
rest=zahl%2;
Dualzahl[i]=rest;
zahl=zahl/2;
}
}while (zahl>0);
for (int i=14; i>=0; i--)
{
cout << Dualzahl[i];
}char ch=getch ();
}
[cpp]
Vielen Dank im Voraus.
-
std::vector<int> Dualzahl; // ... cout << Dualzahl;
-
Wie muss ich das einbinden? Ist das ein eigenständiger Befehl, welcher meine Berechnung gar nicht braucht?
MFG
-
Schau mal hier: http://www.cplusplus.com/reference/stl/vector/
Hier ein Beispiel:
#include <iostream> #include <vector> using namespace std; int main() { int zahl,rest; vector<int> Dualzahl; cout << "Eingabe der Zahl: "; cin >> zahl; do { rest=zahl%2; Dualzahl.push_back(rest); zahl=zahl/2; } while (zahl>0); for(int i=Dualzahl.size()-1;i>=0;i--) { cout<<Dualzahl[i]; } return 0; }
-
Ausgabe geht auch so:
std::copy(to_vector.begin(), to_vector.end(), std::ostream_iterator<int>(std::cout, ""));
-
Die Ausgabe in diesem Vector (dynamisches Array -> sowieit ich verstanden habe!?) erfolgt ja dennoch über eine herunterzählende for-Schleife. Ich möchte jedoch die Ausgabe nicht in einer for-Schleife sondern die Binärezahl als ganzes ausgeben.
Sprich:cout << Dualzahl;
(und nicht jede einzlene Position)
-
evo-style schrieb:
Ich möchte jedoch die Ausgabe nicht in einer for-Schleife sondern die Binärezahl als ganzes ausgeben.
Sprich:cout << Dualzahl;
(und nicht jede einzlene Position)
Dann brauchst du das Ganze wohl in einem std::string, oder du machst eine Operatorüberladung für std::vector<int>.
-
evo-style schrieb:
Die Ausgabe in diesem Vector (dynamisches Array -> sowieit ich verstanden habe!?) erfolgt ja dennoch über eine herunterzählende for-Schleife. Ich möchte jedoch die Ausgabe nicht in einer for-Schleife sondern die Binärezahl als ganzes ausgeben.
Sprich:cout << Dualzahl;
(und nicht jede einzlene Position)
Was stört dich an
daddy_felix schrieb:
Ausgabe geht auch so:
std::copy(to_vector.begin(), to_vector.end(), std::ostream_iterator<int>(std::cout, ""));
-
Hab ich erst jetzt gesehn, sorry. Muss mir dass noch genau anschauen. Da ich erlich gesagt nicht ganz Alles verstehe, und darum zum Teil auch nicht ganz genau weiss, wie man es einbinden muss...
Aber vielen Dank schonmal.
-
ich empfehle dir, dass du erstmal in Ruhe std::vector ansiehst. Zum Einbinden brauchst du lediglich "#include <vector>".
-
Werde sehen ob ich was finde. Das Problem ist einfach, dass wir das in der Schule nie hatten. Und ich möglicherweise darum nicht dartauf gekommen bin. Desshlab wollte ich es auch in einen String reinpacken...
-
Habe Sachen über das std::vector angeschaut. Leider verstehe ich es nicht wirklich. Ist es nicht möglich einfach das Array in int=Dualzahl oder float oder so umzuwandeln?
Da wird diese std:: leider auch nicht in der Schule hatten, habe ich leider keinerlei Unterlagen dazu.