Hexadezimal



  • Hallo zusammen,

    ich würde gerne alle Hexadezimal-Zahlen in einem bestimmten Bereich ermitteln und ausgeben (bzw. in einer txt-Datei speichern), aber ich habe leider keinen Plan, wie ich das realisieren soll.
    Beispiel: eine (4x2)-stellige Zahl: von 00000000 bis FFFFFFFF

    00000000
    00000001
    ........
    ........
    FFFFFFFE
    FFFFFFFF

    Über euere Hilfe würde mich sehr freuen.
    Danke im Voraus.
    Pala



  • Hi,

    "Hexzahlen" gibt es eigentlich gar nicht. Es gibt nur "die Hexdarstellung einer Zahl" .... und genau da liegt auch die Antwort: In einer Schleife einfach eine Variable hochzählen und hexadezimal dargestellt ausgeben.

    EDIT: ERSTER !!! 😃

    Gruß,

    Simon2.



  • Hallo

    du brauchst
    - eine Schleife, in der du eine gewohnte Integer-Zahl von unterer Grenze bis obere Grenze hochzählst
    - eine Ausgabe, die die Intergerzahl in Hex-Format ausgibt (siehe std::hex)

    bis bald
    akari



  • Sowas? 😉

    for (int i = 0x0; i <= 0xff; ++i) {
      std::cout << std::hex << i << std::endl;
    }
    


  • Hallo und danke erstmal für die Antworten.
    Wenn ich davon ausgehe, dass ich bis einer 8-stellige Hexadezimal-*Zahl* (Darstellung) hochzähle, wie kann ich dann aus einer "0" eine "00000000" machen?
    Die Ausgabe soll dann so ausehen, wie ich sie im ersten Beitrag dargestellt habe:

    00000000 
    00000001 
    ........ 
    ........ 
    FFFFFFFE 
    FFFFFFFF
    

    Danke, Pala



  • Du kannst cout mit setw() mitteilen, wie groß die Ausgabe werden soll und mit setfill() die Ausgabe mit 0 auffüllen lassen:

    cout<<setw(8)<<setfill('0')<<i;
    


  • Danke für den Tipp mit dem "Manipulator".
    Ich hätte bitte noch eine Frage und zwar, wie kann man die Hex-Darstellungen (a bis f) in Großbuchstaben (A bis F) umwandeln?

    Danke, Pala



  • Mit einem weiteren Manipulator (oder Stream-Flag) namens 'uppercase'.



  • Danke, es hat supper geklappt.
    Da die Ausführung des Programms __aufgrund der vielen Ausgaben__ ziemlich lang braucht, würde ich gerne eine Stoppuhr einfügen, aber ih weiß leider nicht was für Methode ist benötige.
    Die Genauigkeit der Stoppuhr spielt hier keine Rolle, da ich einfach die "ungefähr-" Zeit ermitteln möchte.
    Hat jemand eine Idee.

    Pala



  • sieh dir mal den Header <ctime> an - du merkst dir die Zeit am Anfang und Ende per time() oder clock(), bildest die Differenz und schon hast du die Laufzeit in Sekunden bzw. Clock-Ticks (1 Sekunde sind CLOCKS_PER_SEK Clock-Ticks).


Anmelden zum Antworten