Ich habe eine Liste mit Zahlen wie folgt:
0, 16, 32, 48 …
Ich muss diese Zahlen hexadezimal ausgeben als:
0000,0010,0020,0030,0040 …
Ich habe eine Lösung ausprobiert wie:
printf("%.4x", a); // Where a is an integer
Aber das Ergebnis, das ich bekam, war:
0000, 0001, 0002, 0003, 0004 …
Ich glaube, da bin ich nah dran. Wie kann ich es reparieren?
Ich bin nicht so gut darin printf
in C.
Ich benutze es so:
printf("my number is 0x%02X\n",number);
// Output: my number is 0x4A
Ändern Sie einfach die Zahl „2“ in eine beliebige Anzahl von Zeichen, die Sie drucken möchten 😉
Ihr Code hat kein Problem. Es wird so gedruckt, wie Sie es möchten. Alternativ können Sie Folgendes tun:
printf("%04x",a);
Sie können den folgenden Snippet-Code verwenden:
#include<stdio.h>
int main(int argc, char *argv[]){
unsigned int i;
printf("decimal hexadecimal\n");
for (i = 0; i <= 256; i+=16)
printf("%04d 0x%04X\n", i, i);
return 0;
}
Es druckt sowohl Dezimal- als auch Hexadezimalzahlen an 4 Stellen mit Nullauffüllung.
Versuchen
printf("%d: %.4x\n", a, a)
Ich denke deina
hat nicht den Wert, den Sie denken.– Benutzer180100
6. September 2010 um 4:49
ja, du hast Recht. Ich war geistesabwesend. Entschuldigung für diese dumme Frage…
– Benutzer188276
6. September 2010 um 4:58