it-swarm.com.de

Wie zeige ich Hexadezimalzahlen in C an?

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.

40
hdn

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

98
codaddict

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;)

5
zeilja

Ihr Code hat kein Problem. Es wird so gedruckt, wie Sie es möchten. Alternativ können Sie Folgendes tun:

printf("%04x",a);
0
loxxy

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.

0
hmofrad