Mit (f)printf Hexadezimalzahl in bestimmten Format ausgeben
-
Hallo,
ich würde gerne mit fprintf/printf Hexadezimalzahlen ausgeben:
Die Variable fürs printf ist immer ein unsigned long int mit 32bit die in der folgenden Form ausgegeben werden sollen:
0x12AB0000 (x klein, A-F groß, geht soweit ich weiß nicht mit # x/X, entweder beides klein oder beides groß, naja nicht so schlimm)
Wichtiger:
0x00000000 (alle Zahlen sollen mit 8 Stellen ausgegeben werden, 0 soll ebenfalls das 0x erhalten; das ganze haut mit der Längenangabe 8 und Flag 0 im Formatstring auch nicht so hin)
Lösungsvorschläge?
-
Das "0x" kannst du auch direkt ausgeben, bevor du die eigentliche Zahl schreibst. Und die Länge kannst du auch über die Präzission steuern:
/*a:*/ printf("0x%08X",value); /*b:*/ printf("0x%.8X",value);
-
printf("0x%08X",...
[edit] Zu spaet.
-
Oh mann, total aufm Schlauch gestanden
Achja bei der Länge wird 0x übrigens mitgezählt falls es den ein oder anderen interessiert. Mit 10 statt 8, hatte ich wenigstens schonmal überall die gewünschte Stellenanzahl