Reference   Language | Libraries | Comparison | Changes

Integer Konstanten

Integer Konstanten sind Nummern, welche direkt im Programmcode verwendet werden, zum Beispiel 123. Standardmässig sind diese Nummern als int definiert, das kann aber durch Verwedndung der Modifikatoren U und L (siehe weiter unten) geändert werden.

Normalerweise werden Integer-Konstanten zur Basis 10 verwendet, aber bestimmte Notationen (Formatierer) erlauben die Eingabe von Zahlen mit anderer Basis.

Basis               Beispiel    Formatierer        Kommentar

10 (dezimal)           123    keiner

2 (binär)        B1111011    vorangestelltes 'B'      funktioniert nur mit 8 bit Werten (0 bis 255)
                                               Zeichen 0-1 gültig

8 (oktal)             0173    vorangestelltes "0"      Zeichen 0-7 gültig       

16 (hexadezimal)      0x7B    vorangestelltes "0x"     Zeichen 0-9, A-F, a-f gültig    

Dezimal bedeutet zur Basis 10. Dies sind die Zahlen, welche im Alltag verwendet werden. Konstanten ohne weitere Vorzeichen sind immer in dezimaler Form.

Beispiel:
101     // Dezimal das Gleiche, also 101    ((1 * 10^2) + (0 * 10^1) + 1)


Binär bedeutet zur Basis 2. Es dürfen nur die Zeichen 0 und 1 verwendet werden. Oktale Werte werden über den Formatierer "B" angegeben.

Beispiel:
B101    // entspricht dezimal der Zahl 5   ((1 * 2^2) + (0 * 2^1) + 1)

Der binäre Formatierer funktioniert nur mit Bytes (8-bit Zahlen) zwischen 0 (B0) und 255 (B11111111). Falls es nötig ist, eine 16-bit Zahl in binärer Form zu verarbeiten, dann hilft folgende Prozedur dabei:

myInt = (B11001100 * 256) + B10101010;    // B11001100 ist das grössere Byte

Oktal bedeutet zur Basis 8. Es dürfen nur Zeichen von 0 bis 7 verwendet werden. Oktale Werte werden über den Formatierer "0" angegeben.

Beispiel:

0101    // entspricht dezimal der Zahl 65   ((1 * 8^2) + (0 * 8^1) + 1) 
Achtung!
Es kann ein mühsamer zu findender Fehler auftauchen, wenn eine vorangestellte Null den Compiler die Konstante als oktal interpretieren lässt, obwohl das an dieser Stelle nicht gewünscht ist.


Hexadezimal (oder hex) bedeutet zur Basis 16. Es dürfen Zeichen von 0 bis 9 und Buchstaben von A bis F verwendet werden; A hat dabei den Wert 10, B ist 11, bis hin zu F, welches den Wert 15 hat. Hexadezimale Werte werden über den Formatierer "0x" angegeben.

Beispiel:

0x101   // entspricht dezimal der Zahl 257   ((1 * 16^2) + (0 * 16^1) + 1)

U & L Formatierer

Standardmässig werden Integer-Konstanten als int behandelt, mit den entsprechenden Einschränkungen im Wertebereich. Damit Integer-Werte mit einem anderen Datentyp verbunden werde können, können bestimmte Formatierer nachgestellt werden:

  • Ein 'u' oder 'U' bringt die Konstante in das unsigned Datenformat. Beispiel: 33u
  • Ein 'l' oder 'L' bringt die Konstante in das long Datenformat. Beispiel: 100000L
  • Ein 'ul' oder 'UL' bringt die Konstante in das unsigned long Datenformat. Beispiel: 32767ul


Siehe auch

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Share