Valeur hexadécimale et octale en C

Dans le langage C, il est tout à fait possible d’affecter une valeur à une variable dès sa déclaration. Ainsi, lorsque cette variable est un entier non signé, la valeur qui lui est attribuée peut être écrite en base 10, en base 8, ou encore en base 16. Pourtant, la plupart des personnes qui utilisent le langage C n’affectent généralement que des valeurs en base 10 aux entiers non signés. De ce fait, dans cet article je vous montre donc comment affecter une valeur hexadécimale et octale en C, à des entiers non signés, et comment les afficher.

Valeur hexadécimale et octale en C

Comment affecter une valeur hexadécimale et octale en C à des entiers non signés ?

À la valeur de la variable, il faut juste ajouter un élément pour que le compilateur comprenne ce que vous voulez dire. Selon la base choisie, cet élément diffère :
  • En base 8 : il faut simplement précéder la valeur de l’entier d’un 0 (zéro).
    Exemple
    : unsigned int var = 0112; Dans ce cas, le compilateur interprète cette valeur comme étant en base 8.

  • En base 16 : il faut précéder la valeur de l’entier non signé par 0x.
    Exemple
    : unsigned int var = 0x4A ; Ici, le compilateur comprend qu’il s’agit d’une valeur en base 16.
Valeur hexadécimale et octale en C

À présent, qui a une idée de comment afficher ces valeurs ?

Nous connaissons à présent comment affecter une valeur hexadécimale ou octale à un entier non signé en C. Cependant, comment faire pour pouvoir afficher de telles valeurs ? Vous pensez probablement à la fonction d’impression formatée printf. Eeeh bah c’est exactement cette fonction qu’il faut utiliser. La véritable question c’est avec quel format va t-on l’utiliser ? Vous pensez peut-être au format %d, mais ce dernier ne permet d’afficher que des entiers signés en base 10.
  • Pour des valeurs en base 8, il faut utiliser le format %o si l’entier est de type unsigned int et le format %lo s’il est de type unsigned long.
  • Pour des valeurs en base 16, il faut utiliser le format %x si l’entier est de type unsigned int et le format %lx s’il est de type unsigned long.

Le code ci-dessous vous donne un exemple d’utilisation de ces formats :

En conclusion, on peut dire que l’objectif a été atteint : vous connaissez à présent comment affecter une valeur hexadécimale et octale en C à un entier. Des questions ou des remarques ? Alors faites le moi savoir en commentaire 🙂 .

Laisser un commentaire