Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]

Les expressions numériques entières


Description

Les expressions numériques entières sont des nombres utilisés directement dans un programme, tel que 123. Par défaut, ces nombres sont traités comme des variables de type int mais vous pouvez changer cela avec les "modificateurs" U et L (voir ci-dessous).

Normalement, les expressions numériques entières sont traitées comme des entiers en base 10 (base décimale càd notre façon spontanée d'exprimer les nombres), mais des notations spéciales (ou "formateurs") peuvent être utilisé pour saisir des nombres dans d'autres bases.

BaseExemple"Formateur"Commentaire
10 (decimal)123aucun 
2 (binaire)B1111011Bfonctionne uniquement avec des valeurs 8 bits (0 to 255) et seuls les caractères 0 et 1 sont valides
8 (octal)01730seuls les caractères de 0-7 sont valides
16 (hexadecimal)0x7B0xles caractères 0-9, A-F et a-f sont valides

Format décimal

Le format decimal correspond à la base 10. C'est les mathématiques du sens commun avec lesquels vous êtes habitués. Les expressions numériques entières sans autre préfixe sont considérées comme étant au format decimal.

Exemple:

101     // pareil que 101 decimal   ((1 * 100) + (0 * 10) + 1)

Format binaire

Le format binaire correspond à la base 2. Seuls les caractères 0 et 1 sont valides.

Exemple:

B101    // vaut 5 en décimal   ((1 * 2^2) + (0 * 2^1) + 1)

Le formateur binaire ne fonctionne uniquement sur des octets (soit 8 bits) entre 0 (B0) et 255 (B11111111). Si c'est nécessaire de saisir un int (16 bits) au format binaire, vous pouvez le faire en deux temps de la façon suivante :

myInt = (B11001100 * 256) + B10101010;    // B11001100 est l'octet de poids fort

Format octal

Le format octal correspond à la base 8. Seuls les caractères de 0 à 7 sont valides. Les valeurs octales sont indiquées par le préfix "0"

Exemple:

0101    // vaut 65 en décimal   ((1 * 8^2) + (0 * 8^1) + 1)

ATTENTION : Il est possible de générer un bogue très difficile à détecter en incluant (par inadvertance) un 0 devant une expression numérique que le compilateur interprétera comme une expression numérique de type octal.

Format hexadécimal

Le format hexadécimal (or hex) correspond à la base 16. Les caractères valides sont de 0 à 9 ainsi que les lettres A à F; A a la valeur 10, B la valeur 11, jusqu'à F qui a la valeur 15. Les valeurs hexadécimales sont indiquées par le préfix "0x". Noter que les lettres A-F peuvent être écrites en majuscules(A-F) ou en minuscules (a-f).

Exemple:

0x101   // vaut 257 décimal   ((1 * 16^2) + (0 * 16^1) + 1)

Les modificateurs U et L

Par défaut, une constante entière est traitée commune une variable int avec les limitations inhérentes à ces valeurs. Pour utiliser une constante entière dans un autre type de données, on la fait suivre par :

  • un 'u' ou 'U' pour forcer à traiter la constante dans le format de donnée non signé (unsigned). Exemple: 33u
  • un 'l' ou 'L' pour forcer à traiter la constante dans le format de donnée de type long. Exemple: 100000L
  • un 'ul' ou 'UL' pour forcer à traiter la constante dans le format de donnée de type unsigned long (long non signé). Exemple: 32767ul

Commentaires utilisateurs

Aucun commentaire

Voir également


Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.