Wie kann ich Hexadezimalzahlen in C anzeigen?

Lesezeit: 2 Minuten

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.

  • Versuchen printf("%d: %.4x\n", a, a)Ich denke dein a 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

Benutzeravatar von codaddict
Codaddict

Versuchen:

printf("%04x",a);
  • 0 – Füllt die Zahl links mit Nullen (0) anstelle von Leerzeichen auf, wenn Auffüllen angegeben ist.
  • 4 (Breite) – Mindestanzahl der zu druckenden Zeichen. Ist der zu druckende Wert kürzer als diese Zahl, wird das Ergebnis innerhalb dieser Breite rechtsbündig ausgerichtet, indem links mit dem Füllzeichen aufgefüllt wird. Standardmäßig ist dies ein Leerzeichen, aber die von uns verwendete führende Null gibt eine Null als Füllzeichen an. Der Wert wird nicht abgeschnitten, auch wenn das Ergebnis größer ist.
  • x – Spezifizierer für hexadezimale Ganzzahl.

Mehr Hier

  • es ergibt: 0000, 0001, 0002, 0003, 0004 … was ich brauche ist: 0000,0010,0020,0030,0040 …

    Benutzer188276

    6. September 2010 um 4:44


  • hmm, wie seltsam … Ich habe es versucht, aber es wird immer als 0000, 0001, 0002, 0003, 0004 angezeigt (ich verwende Eclipse in Ubuntu, gcc …)

    Benutzer188276

    6. September 2010 um 4:49

  • @tsubasa – Geben Sie sie gleichzeitig als Dezimalzahlen aus, nur um zu überprüfen, ob der Rest Ihres Codes das tut, was Sie denken.

    – Detly

    6. September 2010 um 4:58

  • Das Original %.4x Die Formatnotation war in Ordnung und erzielt die gleichen Ergebnisse wie %04x. Das Problem waren in erster Linie die an die übermittelten Daten printf().

    – Jonathan Leffler

    12. Okt. 2013 um 14:03

zeiljas Benutzeravatar
zeilja

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 😉

Loxxys Benutzeravatar
Loxxy

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

printf("%04x",a);

Benutzeravatar von hmofrad
hmofrad

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.

1454410cookie-checkWie kann ich Hexadezimalzahlen in C anzeigen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy