errox Geschrieben 12. August 2007 Geschrieben 12. August 2007 Hallo ich wollte fragen, wie ich in einer while schleife "heximale" und.... "alle buchstaben / zahlen" ausgeben kann. z.b. int a = 0; while(true) { cout << a << endl; } soll dann 0, 1, 2,3,4,5.6,7.8.9,a,b,c,d,e,f ausgeben.. .und auf einer anderen art und weise 0, 1, 2,3,4,5.6,7.8.9,a,b,c,d,e,f,g,h,i,j,k,l,m,n usw ^^ Danke für antworten MfG Zitieren
Klotzkopp Geschrieben 13. August 2007 Geschrieben 13. August 2007 Wenn es dir nicht darum geht, mit den "Zahlen" auch zu rechnen, dann steck sie einfach in ein char-Array, und gib das Zeichen für Zeichen aus: #include <iostream> using namespace std; int main() { char werte[] = "0123456789abcdef"; // bei Bedarf länger for( size_t i = 0; i < sizeof( werte ) - 1; ++i ) { cout << werte[i] << '\n'; } }[/code] Das -1 bei der Schleifenbedingung hat den Grund, dass Stringliterale automatisch nullterminiert werden. Darum ist die Größe, die sizeof liefert, um 1 größer als die Anzahl der Zeichen im Array. Zitieren
errox Geschrieben 13. August 2007 Autor Geschrieben 13. August 2007 Vielen dank. Und wie mach ich das jetzt 32 Stellig? :S Zitieren
Klotzkopp Geschrieben 13. August 2007 Geschrieben 13. August 2007 Und wie mach ich das jetzt 32 Stellig? :SWas meinst du damit? Zitieren
errox Geschrieben 13. August 2007 Autor Geschrieben 13. August 2007 Also.. Mit dem code wird 0 1 2 3 4 5 6 7 8 9 A B C D E F ausgebeben blos will ich dass 00000000000000000000000000000001 00000000000000000000000000000002 00000000000000000000000000000003 usw ausgibt ^^ Zitieren
Nachwuchsinformatiker Geschrieben 13. August 2007 Geschrieben 13. August 2007 Machs zu nem String, zähl die anzahl der Zeichen (z. B. 2 bei FF) und häng davor entsprechend viele 0'en dran? Geht halt nur solange du nicht mit weiterarbeiten willst. Wenn du volle 32 Zeichen hast (also keine führende null), kannst du dein Ergebnis auch einfach mit 10³² multiplizieren, dann kann das Ding auch ein Nicht-String sein. Hab leider keiner weitreichenden C++ Kenntnisse, deshalb wüsste ich da spontan auch keine bessere Lösung für. Zitieren
Klotzkopp Geschrieben 13. August 2007 Geschrieben 13. August 2007 blos will ich dass 00000000000000000000000000000001 00000000000000000000000000000002 00000000000000000000000000000003 usw ausgibt ^^ Soll dein Programm von 0 bis ffffffffffffffffffffffffffffffff zählen? Wozu? Ist dir klar, wie lange das dauert? Selbst wenn dein Programm eine Milliarde Zeilen pro Sekunden ausgeben würde, würdest du das Ende nicht erleben. Das Programm wäre noch nicht mal zu 0.0000000001% durchgelaufen, wenn unserer Sonne der Brennstoff ausgeht. Wenn du das wirklich brauchst (was ich bezweifle; das sieht mir gerade eher nach einer Spielerei aus), dann solltest du dich nach einer Bibliothek für große Zahlen umsehen, z.B. die GNU Multi-Precision Library. Denn du brauchst hier einen Datentyp, der 128 Bit fassen kann. Mir ist kein Compiler für heutige System bekannt, der solche Größen mit den eingebauten Datentypen unterstützt. Zitieren
Nachwuchsinformatiker Geschrieben 13. August 2007 Geschrieben 13. August 2007 Muss ja nicht sein Klotzkopp.. Es kann sich genausogut um ne Hashfunktion á la MD5 handeln die er vielleicht schreiben oder verstehen will. Zitieren
errox Geschrieben 13. August 2007 Autor Geschrieben 13. August 2007 Zu dir Nachwuchsinformatiker, ja ich möchte etwas mit MD5 prüfsummen ausprobieren ^^ geht dass dann auch mit 4 Stellen? bzw 10? MfG... P.S. die innerhalb von 1 nem tag durchgelaufen wird.. Zitieren
Nachwuchsinformatiker Geschrieben 13. August 2007 Geschrieben 13. August 2007 Sag doch gleich das es sich um MD5 handelt.. Um das Problem zu lösem hätte ein wenig Googlen auch nicht geschadet, gibt ja zig Sourcefiles, z. B. das hier. Oder hier. Glaube es ist viel einfacher wenn du dir den Code ansiehst, dir überlegst was du machen willst und dann erst fragen stellst. Zitieren
Guybrush Threepwood Geschrieben 13. August 2007 Geschrieben 13. August 2007 Ich denke was er machen will ist mittlerweile klar. Nur ist es relativ Sinnfrei zu ersuchen eine MD5 Summe per BrutForce zu knacken...es sei den man hat nen großen Supererechnerpark.. oder viel Glück und direkt nen Treffer Zitieren
errox Geschrieben 14. August 2007 Autor Geschrieben 14. August 2007 MD5 Summe knacken? Nö.. Wäre zu sehr aufwendig... Ich will / brauch auch nicht zu wissen, wie das geht... Ich möchte nur wissen, wie ich ein programm schreibe, das X beliebige stellen in einer schleife ausgibt von 0 bis ... F / Z Tut mir leid, wenn ich euch damit nerve... :S Zitieren
Klotzkopp Geschrieben 14. August 2007 Geschrieben 14. August 2007 Ich möchte nur wissen, wie ich ein programm schreibe, das X beliebige stellen in einer schleife ausgibt von 0 bis ... F / Z Mir erschließt sich der Sinn zwar absolut nicht, aber na gut... Schreib dir eine Klasse, die sich die gewünschte Länge, die Zeichen (z.B. als String) und die Stellenwerte (z.B. als Vector<int>, wobei die Werte jeweils als Index auf den String zu verstehen sind) merkt. Dann brauchst du noch einen operator++ zum Hochzählen. Der geht die Stellen von hinten nach vorn durch und prüft, ob ein Übertrag vorliegt. Falls nein, wird die Stelle um 1 hochgezählt. Fall ja, wird die Stelle auf 0 gesetzt und es geht mit der nächsten Stelle weiter. Schließlich brauchst du noch einen operator<<, der das Ding in seinem aktuellen Status ausgeben kann. Aber das ist ja nur eine einfache Schleife. Zitieren
errox Geschrieben 16. August 2007 Autor Geschrieben 16. August 2007 Vielen Vielen Dank euch allen! Und ein besonderer Dank, geht an Klotzkopp. Vielen Vielen Dank! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.