Veröffentlicht 12. August 200718 j 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
13. August 200718 j 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.
13. August 200718 j Autor 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 ^^
13. August 200718 j 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.
13. August 200718 j 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.
13. August 200718 j Muss ja nicht sein Klotzkopp.. Es kann sich genausogut um ne Hashfunktion á la MD5 handeln die er vielleicht schreiben oder verstehen will.
13. August 200718 j Autor 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..
13. August 200718 j 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.
13. August 200718 j 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
14. August 200718 j Autor 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
14. August 200718 j 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.
16. August 200718 j Autor Vielen Vielen Dank euch allen! Und ein besonderer Dank, geht an Klotzkopp. Vielen Vielen Dank!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.