dezimal in binär?
-
hallo!
gibt es irgendeinen header mit funktionen zum umrechnen von dezimal zu binär und umgekehrt?
wenn ja, welchen? und wie is der name der funktion?
greets, hokage
-
-
ok danke

-
ich kann das aber irgendwie denn ned weiter benutzen oder??
kann ich dann auch den binärstring wieder in eine dezimale zahl umwandeln? indem ich die funktion vielleicht ein bisschen ändere?
-
Die bitset<>s kannst du auch für die Umkehrrichtung verwenden - du übergibst bei der Konstruktion den Binärstring und holst mit to_long() den zugehörigen Zahlenwert raus. Ansonsten kannst du auch strtod() verwenden.
PS: Solange du mit den Zahlen noch rechnen willst, solltest du dir über die Darstellung gar keine Sorgen machen - erst für die Ausgabe mußt du dich entscheiden, welche Zahlenbasis du verwendest.
-
Was genau macht dieses bitset<> denn?
-
bitset<> ist ein Array für einzelne Bits (mit fest vorgegebener Größe). Daß es seinen Inhalt auch in String-bzw. Integer-Format einlesen und ausgeben kann, ist eigentlich ein netter Nebeneffekt.
-
und template??? mh,lol ich merk, ich hab zu wenig ahnung..
-
hokage schrieb:
und template??? mh,lol ich merk, ich hab zu wenig ahnung..
Such mal danach, gibt glaubich ein gutes Tutorial, welches diese behandelt.
Jedenfalls wirst du bestimmt schon Templates benutzt haben, ausser du hast nie irgendwas von der STL benutzt.
-
Ja, template - der Template-Parameter gibt an, wie viele Werte in das bitset<> passen können.
(übrigens: falls du ein bit-Array variabler Länge brauchst, gibt es auch noch vector<bool> - aber der kann nicht für Formatumwandlungen verwendet werden.
-
okay alled klah

und danke nochma an die ganzen helfer hier

-
argh ich muss des doch nochma aufgreifen...
ich bin zu dumm herauszukriegen, wie ich die funktion richtig einbinde...

die schleife:
int bin; for(int i = 0; i < length(src); i++) { nr_of_zs = wandle_in_nummern(src[i]); cout<<nr_of_zs<<endl; bin = DezToBin ( nr_of_zs); cout<<bin<<endl; }extrafunktion:
//irgendwie war des template noch dabei.. //template <unsigned int NrOfBits> string DezToBin(int Wert) { bitset<NrOfBits> AlsBits(Wert); return AlsBits.to_string(); }muss bin vllt nich int sondern das template sein oder so?
und wie mach ich des denn richtig, das alled funzt??
greeets da hok
-
hi
das thema hatte ich heute erst.
folgendes programm zählt von 0 bis "Eingabe" und wandelt die aktuelle zahl in eine binärzahl durch hochzählen:#include <iostream.h> #include <string> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { __int64 a, z; string x; cout << "Wie hoch soll gezaehlt werden ? [Eingabe]: "; cin >> a; for (__int64 j=0; j<=a; j++) { z = j; cout << "\r"; x = ""; while (z>0) { if (z%2==0) { x = "0" + x; } else { x = "1" + x; } z = z/2; } cout << x; }vielleicht erkennste das prinzip...
-
hokage schrieb:
string DezToBin(int Wert) { bitset<NrOfBits> AlsBits(Wert); return AlsBits.to_string(); }NrOfBits = ??
Na, leuchtets ein