Forum Programmation.c Hexadecimal VS Decimal

Posté par  (site web personnel) .
Étiquettes : aucune
0
15
août
2007
Salut,

bête question:
Dans un programme, est-ce que le fait d'écrire les nombres en hexadécimal au lieu de les écrire en décimal, est-ce que c'est une question de gout ou bien ça apporte réellement quelque chose au programme.

Ex:

enum blabla
{
val1 = 1,
val2 = 2,
val3 = 4,
val4 = 8,
val5 = 16
}

VS

enum blabla
{
val1 = 0x1,
val2 = 0x2,
val3 = 0x4,
val4 = 0x8,
val5 = 0x10
}

merci
  • # de goût

    Posté par  . Évalué à 7.

    De goût,

    L'hexa est plus utilisé lorsqu'on a besoin de faire des masques binaires. C'est plus lisible.

    Mais chacun fait ce qu'il lui plaît
    • [^] # Re: de goût

      Posté par  . Évalué à 2.

      exactement,

      c'est le rôle du compilateur de transformer les différentes représentations possibles de la même valeur.

      le code généré ensuite est sensé être le même.

      à l'extrême limite, le programme sera 1 femtoseconde plus rapide à compiler lorsque c'est écrit en héxa ;-)
  • # utile dans certains cas

    Posté par  . Évalué à -1.

    La différence entre le décimal et l'héxa se sent lorsque tu dois traiter des nombres importants.
    par exemple ...
    Dans le cas où tu cherche à affecter la valeur 100 a une variable il n'y aura aucune différence entre

    val = 100
    ou
    val = 0x64

    Par contre pour affecter la valeur 1000000000000000000000000000000000000000000 à ta variable
    il sera plus simple de procéder a l'aide de son équivalent en héxa
    soit

    val = 0xC0914B2680000000
    a la place de
    val = 1000000000000000000000000000000000000000000

    ca prendra moin de place dans ton code et fera plus sérieux ;)
    • [^] # Re: utile dans certains cas

      Posté par  . Évalué à 5.

      Je dirais au contraire que dans ton exemple le décimal parait plus approprié que l'hexadécimal.
      Peut importe que le nombre soit plus grand a écrire 10...0 est un nombre particulier en base 10, et justement en hexadécimal, on ne voit plus cette particularité.

      Il faut utiliser l'hexadécimal lorsque ca fait sens. Un gros avantage de l'hexa c'est la représentaion 2 caractères = 1 octet, ce qui le rend très utile pour faire de masque de bit par exemple.
      poidsfort = 0X12345678 & 0XFFFF0000 // resultat 0X12340000
      et plus clair que
      poidsfort = 0X12345678 & 4294901760 // resultat 0X12340000
      Car on voit clairement que l'on garde les 2 octets de poid fort.

      Suivant le type de programme que tu fait, il se peut que tu n'aie jamais besoin d'hexadécimal.
      • [^] # Re: utile dans certains cas

        Posté par  . Évalué à 1.

        Autre exemple:

        Si tu travailles avec des couleurs par exemple, cela peut-être très utile.

        0xFF0000 pour rouge (niveau de rouge à 255, vert à 0, bleu à 0) est plus clair que 16711680 ..
        de même 0x00FF00 pour vert ...

        D'une manière générale, dès que tu traites des octets par paquets, le besoin de l'hexa se fait sentir. Sinon, le décimal est très bien.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.