Dezimal (Basis 10)
Der "Standardfall". Alle Konstanten ohne spezielle Präfixe werden als Dezimalformat interpretiert.
Beispielcode:
n = 101; // = 101 in Dezimal ((1 * 10^2) + (0 * 10^1) + 1)
Binär (Basis 2)
Nur die Zahlen 0 und 1 sind gültig.
Beispielcode:
n = B101; // = 5 in Dezimal ((1 * 2^2) + (0 * 2^1) + 1)
Der Binärformatierer funktioniert nur für Zahlen bis 8 Bit zwischen 0 (B0) und 255 (B11111111). Wenn du eine 16-Bit-Zahl angeben willst,
solltest du dies in der folgenden Art tun:
myInt = (B11001100 * 256) + B10101010; // B11001100 ist dann das 'High byte'
Octal (Basis 8)
Nur die Zahlen 0 bis 7 sind erlaubt. Oktalzahlen werden durch das Präfix "0" (Null) identifiziert.
Beispielcode:
n = 0101; // = 65 in Dezimal ((1 * 8^2) + (0 * 8^1) + 1)
Es ist leicht, unabsichtlich schwer zu findende Fehler in den Code einzubauen, wenn eine führende Null for einer Konstante steht und der
Compiler diese als Oktalzahl interpretiert.
Hexadecimal (Basis 16)
Valide Zeichen sind 0 bis 9 und A bis F: A hat den Wert 10, B den Wert 11, C den Wert 12, D den Wert 13, E den Wert 14 und F den Wert 15.
A bis F können auch in lower case (a bis f) verwendet werden.
Beispielcode:
n = 0x101; // = 257 in Dezimal ((1 * 16^2) + (0 * 16^1) + 1)
Anmerkungen und Warnungen
Per default werdem Integerkonstanten als Integer behandelt. Zur Verwendung von Integerkonstanten als andere Datentypen, siehe die folgenden Formatierer:
-
'u' oder 'U': Ändert den Datentyp der Konstante auf unsigned int. Beispiel: 33u
-
a 'l' oder 'L': Ändert den Datentyp der Konstante auf long. Beispiel: 100000L
-
a 'ul' oder 'UL': Ändert den Datentyp der Konstante auf unsigned long. Beispiel: 32767ul