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.

Base Exemple "Formateur" Commentaire
10 (decimal) 123 aucun
2 (binaire) B1111011 B fonctionne uniquement avec des valeurs 8 bits (0 to 255) et seuls les caractères 0 et 1 sont valides
8 (octal) 0173 0 seuls les caractères de 0-7 sont valides
16 (hexadecimal) 0x7B 0x les 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)

!!! warning 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 :

Commentaires utilisateurs

Aucun commentaire

Voir également