0 Daumen
78 Aufrufe

Warum steht manchmal "#h" (Hexa) und manchmal nicht?

Datentypen. Zusätzlich finden Sie in der Tabelle die Mindestgrößen von Werten und das Formatzeichen, um den Typ mit den Funktionen der printf-Familien formatiert auszugeben oder mit Funktionen der scanfFamilie einzulesen. Die tatsächlichen Wertebereiche sind besonders beim Typ int meistens größer.

Tabelle 3.1 Grundlegende Datentypen für Ganzzahlen

DatentypWertebereich (min.)Formatzeichen
signed char-128
+127
#hhd (für dezimal)
#c (für Zeichen)
short-32768
+32767
#hd oder #hi
int-32768
+32767
#d oder #i
long-2.147.483.648
+2.147.483.647
#ld oder #li
long long
(seit C99)
-9.223.372.036.854.775.808
+9.223.372.036.854.775.807
#lld oder #lli
von

1 Antwort

+1 Daumen

Die Formatzeichen haben folgenden Aufbau:

        %[Parameter][Bitschalter][Breite][.Genauigkeit][Länge]Typ.

Der Typ d gibt an, dass eine ganze Zahl (das heißt eine Zahl aus ℤ) in Dezimaldarstellung ausgegeben werden soll.

Die Länge hh gibt an, dass der auszugebende Wert aus einem signed char kommt.

Zusammengefasst besagt %hhd: ein signed char wird als ganze Zahl ausgegeben.

Auf die gleiche Weise werden die Längenangaben h, l und ll verwendet für die Ausgabe von short, long bzw. long long.

Mit Ausgabe in hexadezimaler Darstellung hat das nichts zu tun. Dafür gibt es den Typ x. Zum Beispiel wird mit %lx ein unsigned long int in hexadezimaler Darstellung ausgegeben.

Weitere Einzelheiten findest du im Artikel printf format string aus Wikipedia.

von 3,3 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community