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 ganz nah. Kann irgendjemand helfen, da ich nicht in printf
in C bin.
Vielen Dank.
Versuchen:
printf("%04x",a);
0
- Platziert die Zahl mit Links. mit Nullen (0) anstelle von Leerzeichen, wobei Abstand angegeben wird.4
(Breite) - Mindestanzahl an Zeichen, die gedruckt werden sollen. Wenn der zu druckende Wert ___ kürzer als diese Zahl ist, wird das Ergebnis innerhalb dieser Breite rechtsbündig gemacht, indem auf der linken Seite __ mit dem Auffüllzeichen aufgefüllt wird. Standardmäßig ist dies ein Leerzeichen, aber die führende Null, die wir verwendet haben, gibt eine Null als Pad-Zeichen an. Der Wert wird nicht abgeschnitten, selbst wenn das Ergebnis größer ist.x
- Bezeichner für Hexadezimalzahl Ganzzahl.Mehr hier
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 Code-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 dezimale als auch hexadezimale Zahlen an vier Stellen mit Nullen.