Wie zeigt man Hexadezimalzahlen in C an?

Lesezeit: 2 Minuten

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.

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

Benutzeravatar von codaddict
codaddict

Versuchen:

printf("%04x",a);
  • 0 – Füllt die Zahl links mit Nullen (0) anstelle von Leerzeichen auf, wenn das Auffüllen angegeben ist.
  • 4 (Breite) – Mindestanzahl der zu druckenden Zeichen. Ist der zu druckende Wert kleiner als diese Zahl, wird das Ergebnis innerhalb dieser Breite rechtsbündig durch Auffüllen links mit dem Pad-Zeichen ausgerichtet. Standardmäßig ist dies ein Leerzeichen, aber die führende Null, die wir verwendet haben, 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 Uhr


  • hmm, wie komisch … 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 Uhr

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

    – dezent

    6. September 2010 um 4:58 Uhr

  • Das Original %.4x Format Notation war in Ordnung und erzielt die gleichen Ergebnisse wie %04x. Das Problem war in erster Linie die Datenlieferung an die printf().

    – Jonathan Leffler

    12. Oktober 2013 um 14:03 Uhr

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

Benutzeravatar von loxxy
geil

Ihr Code hat kein Problem. Es druckt so, 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.

1412700cookie-checkWie zeigt man Hexadezimalzahlen in C an?

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

Privacy policy