Ich habe eine Liste mit Nummern wie folgt:
0, 16, 32, 48 …
Ich muss diese Zahlen hexadezimal ausgeben als:
0000,0010,0020,0030,0040 …
Ich habe versucht, Lösung wie:
printf("%.4x",a); // where a is an integer
aber das Ergebnis, das ich bekam, ist:
0000, 0001, 0002, 0003, 0004 …
Ich glaube, ich bin da in der Nähe. Kann mir jemand helfen, da ich nicht so gut bin printf
in C.
Vielen Dank.
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 druckt so, 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 du denkst.– Benutzer180100
6. September 2010 um 4:49 Uhr
ja, du hast Recht. Ich war geistesabwesend. sorry für diese dumme frage…
– Benutzer188276
6. September 2010 um 4:58 Uhr