Dezimalzahlen in Binärzahlen umwandeln
-
Binärzahlen haben doch ne länge von 8 Zeichen.
Wegen 2^0 2^1 usw. Hat man alles mal gelernt.
11010101 <--- 213 heheIch sagte doch das ich es algorithmisch nicht so drauf habe weil ich mich damit genau seit heute morgen um 9:13 befasse...
-
es kommt immer darauf an wieviel bit die binärzahl hat! Ich frage mich gerade was du so gelernt hast
-
Diron schrieb:
Binärzahlen haben doch ne länge von 8 Zeichen.
und was haben dezimalzahlen für eine länge?
Hat man alles mal gelernt.
jaja, immer das risiko, was falsches zu lernen...
-
Kann man das nicht einfacher aufs Blatt bringen! Is mir echt viel zu stressig 2000 Zeilen Code wegen so ner pissigen Aufgabe zu schreiben
-
was erwartest du denn! wenn du es nich selber probieren willst tuts mir leid!
aber wie gesagt
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39490.html
da is was
-
Wieso gibts dafür eigentlich keinen Manipulator wie für oct, hex usw.? Hab mal gehört es gibt nen Befehl wie setbase. Könnte man es damit auch schaffen?
Das geht jedenfalls nicht: cout << setbase(2) << [Zahl] << endl;
Wär ja auch zu geil...
-
Jetzt übertreib mal nicht:
So gehts z.B. auch kürzer, dafür aber nicht so komfortabel(Da beschränkt auf den Wertbereich von unsigned int)
unsigned int decToBin(int x) { unsigned int y = 0; while(x > 0) { y = y * 10 + (x % 2); x /= 2; } return y; }
Caipi
-
Ich schau mir das jetzt mal in Ruhe an. Vielen Dank Caipi und PROST!
Bald is wieder sommer und da vernichte ich dich literweise hehe
-
FÜR CAIPI
:-)#include <iostream> // für io #include <sstream> // für's umwandeln #include <algorithm> // für's umdrehen using std::string; using std::ostringstream; string binary( unsigned int zahl ) { ostringstream os; // hier drin binärziffern sammeln for ( int i = zahl; i != 0; ) { // es wird immer das rechte bit untersucht // wenn zahl ungerade (Bit 0 == 1), // 1 an den ostringstream hängen, sonst 0 if (i & 1) os << "1"; else os << "0"; i >>= 1; // nach rechts shiften, um nächste // binärziffer zu untersuchen // (entspricht teilen durch zwei) } string dualzahl = os.str(); // in string kopieren std::reverse( dualzahl.begin(), dualzahl.end() ); // string umdrehen return dualzahl; } void wait() { // warten char c; std::cin >> c; } int main(void) { std::cout << "Ergebnis: " << binary( 439828 ); wait(); return 0; };
-
Diron schrieb:
FÜR CAIPI...
da hat wohl jemand einen neuen freund gefunden