Formatierung als Hex-Zahl



  • Ich hab' noch nicht alle Feinheiten der C# Formatstrings durchschaut, deshalb ist die Frage wohl eigentlich trivial: Wie kann ich eine int-Zahl als Hex-Wert mit fester Länge (und führenden Nullen) formatieren?

    In C bzw. C++ hätte ich dafür eine Lösung:

    //C
    printf("%08x",wert)
    //C++
    cout<<hex<<setw(8)<<setfill('0')<<wert;
    

    Aber in den MSDN-Erklärungen zur Zahlenformatierung habe ich nichts gefunden, um das selbe Ergebnis zu erreichen. {0,8:X} füllt den Wert mit Leerzeichen auf, nutzerdefinierte Formate geben anscheinend grundsätzlich Dezimalzahlen aus.



  • Über string.Format(...) müsste man das erreichen können.

    Code von irgendwo ausm Inet:

    string output;
    int value = 100;
    
    // Convert a number to hexadecimal
    output = string.Format("The decimal value {0} = {0:X} in hex.", value);
    
    Console.WriteLine(output);     // Outputs "The decimal value 100 = 64 in hex."
    


  • Hallo,

    mit "{0:X8}" klappt das ganz gut

    Grüße



  • @icarus: Die Lösung hatte ich auch selber gefunden, da fehlten allerdings die führenden Nullen - ich will nicht "64", sondern "00000064".

    @Conan: Danke, das war's was ich gesucht habe.


Anmelden zum Antworten