Variable mit Hex
-
Hallo Leute,
ich habe ein kleines Problem.
Und zwar habe ich einen Hexwert den ich gerne durchlaufen möchte.
Also z.b.:0000
Und ich möchte jetzt alle Werte durchgehen bis zu FFFF.
Bei einem Int Wert würde ich das mit einer For-Schleife machen und dann immer mit ++ erweitern.
Aber wie kann ich das am besten mit einem Hexwert machen damit er alle Werte durchgeht?
-
Das geht genauso, da der PC intern nur das duale Zahlensystem kennt.
Und dem PC ist es egal ob du die Zahlen Dezimal oder Hexadezimal im Quellcode angibst.alle folgenden schleifen köpfe zahlen von 0-255 (dez)
oktal:
for (int i=0; i <=0377; i++);
dezimal:
for (int i=0; i <=255; i++);
hexadezimal:
for (int i=0x00; i <=0xff; i++);Bei der Ausgabe musst du halt die Zahl in das gewünschte Zahlensystem (als string) konvertieren bzw. vorhanden Systemfunktionen dafür verwenden.
-
Danke für die schnelle Antwort.
Wenn ich nun einen Wert mit zwei Bytes erhöhen will muss ich das dann mit mehreren Schleifen machen oder?
Also wenn der Wert
00 00 ist und ich diesen bis FF FF haben will kann ich es nicht mit 0x0000 bis 0xffff machen oder?
-
nö, Du brauchst einfach nur eine Schleife von 0 bis 0xffff:
for(int i = 0x0000; i <= 0xffff; ++i) cout << hex << i << endl;
was äquivalent zu
for(int i = 0; i <= 65535; ++i) cout << hex << i << endl;
ist
-
Ok vielen Dank.
Das ist dann genau das was ich gesucht habe.
Jetzt habe ich nur ein Problem und zwar habe ich jetzt auch noch einen Hexwert mit 8 Bytes. Und da erhalte ich dann immer die Fehlermeldung das der Wert zu groß ist für long.
-
verwende long long