Constantes entières
Description :
Les constantes entières sont des nombres utilisés directement dans un schéma, comme 123. Par défaut, ces nombres sont traités comme des entiers ( int ) , mais vous pouvez modifier ce comportement avec les modificateurs U et L (voir ci-dessous).
Normalement, les constantes entières sont traitées comme des entiers décimaux (base 10), mais une notation spéciale (formateurs) peut être utilisée pour saisir des nombres dans d’autres bases.
Base | Exemple | Formateur | Commentaire |
---|---|---|---|
10 (decimal) | 123 | none | |
2 (binary) | 0b1111011 | leading « 0b » | characters 0 & 1 valid |
8 (octal) | 0173 | leading « 0 » | characters 0-7 valid |
16 (hexadecimal) | 0x7B | leading « 0x » | characters 0-9, A-F, a-f valid |
Decimal (base 10) :
Il s’agit des mathématiques de bon sens que vous connaissez. Les constantes sans autre préfixe sont supposées être au format décimal.
Exemple de code :
n = 101; // identique à 101 décimal ((1 * 10^2) + (0 * 10^1) + 1)
Binary (base 2) :
Seuls les caractères 0 et 1 sont valides.
Exemple de code :
n = 0b101; // identique à 5 décimal ((1 * 2^2) + (0 * 2^1) + 1)
Octal (base 8) :
Seuls les caractères de 0 à 7 sont valides. Les valeurs octales sont indiquées par le préfixe « 0 » (zéro).
Exemple de code :
n = 0101; // identique à 65 décimal ((1 * 8^2) + (0 * 8^1) + 1)
Il est possible de générer un bug difficile à trouver en incluant (involontairement) un zéro non significatif avant une constante et en faisant en sorte que le compilateur interprète involontairement votre constante comme octale.
Hexadecimal (base 16) :
Les caractères valides sont les chiffres de 0 à 9 et les lettres de A à F ; A vaut 10, B vaut 11, et F vaut 15. Les valeurs hexadécimales sont indiquées par le préfixe « 0x ». Notez que les lettres de A à F peuvent être majuscules (A-F) ou minuscules (a-f).
Exemple de code :
n = 0x101; // identique à 257 décimal ((1 * 16^2) + (0 * 16^1) + 1)
Remarques et avertissements :
Formateurs U & L :
Par défaut, une constante entière est traitée comme un int, avec les limitations de valeurs qui en découlent. Pour spécifier une constante entière avec un autre type de données, faites-la suivre de :
- un u ou un U pour forcer la constante dans un format de données non signé. Exemple : 33u
- un l ou L pour forcer la constante dans un format de données long. Exemple : 100000L
- un ul ou un UL pour forcer la constante à devenir une constante unsigned long. Exemple : 32767ul
Source : https://docs.arduino.cc/language-reference/en/variables/constants/integerConstants/