63 votes

Pourquoi utiliser l'hexagone ?

Hey ! Je regardais ce code à http://www.gnu.org/software/m68hc11/examples/primes_8c-source.html

J'ai remarqué que dans certaines situations, ils utilisaient des chiffres hexagonaux, comme à la ligne 134 :

for (j = 1; val && j <= 0x80; j <<= 1, q++)

Maintenant, pourquoi utiliseraient-ils le 0x80 ? Je ne suis pas très doué avec les hexagones mais j'ai trouvé un outil en ligne pour convertir les hexagones en décimales et il m'a donné 128 pour 0x80.

Avant la ligne 134, à la ligne 114, il y a aussi ceci :

small_n = (n & 0xffff0000) == 0;

Le passage de l'hexagone au décimal m'a donné 4294901760 pour ce numéro hexagonal. Donc ici, dans cette ligne, ils font un bit ET et comparent le résultat à 0 ??

Pourquoi ne pas simplement utiliser le numéro ? Quelqu'un peut-il m'expliquer et me donner des exemples d'autres situations ?

J'ai également vu de grandes lignes de code où il n'y avait que des chiffres hexadécimaux et je n'ai jamais vraiment compris pourquoi :(

3voto

Dan Hewett Points 995

Pour être plus précis, hex et décimal, sont tous des NOMS. Les radix (base 10, 16, etc.) sont des moyens de présenter ces chiffres d'une manière plus claire ou plus pratique.

Lorsque l'on parle de "combien il y a de quelque chose", on utilise normalement le système décimal. Lorsque nous examinons des adresses ou des modèles de bits sur des ordinateurs, l'hexagone est généralement préféré, car la signification des octets individuels peut souvent être importante.

L'hexagone (et l'octal) ont la propriété d'être des puissances de deux, ce qui leur permet de représenter des groupements de bits de manière adéquate. Le code hexadécimal fait correspondre 4 bits à un espace hexadécimal (0-F), de sorte qu'un octet est stocké dans deux espaces (00-FF). L'octal était populaire sur les machines Digital Equipment (DEC) et d'autres machines plus anciennes, mais un chiffre octal correspond à trois bits, et ne franchit donc pas aussi bien les limites des octets.

Globalement, le choix du radix est un moyen de faciliter votre programmation - utilisez celui qui correspond le mieux au domaine.

2voto

Paul Nathan Points 22910

En regardant le fichier, c'est un code assez génial. J'espère que vous êtes bon en C et que vous ne l'utilisez pas comme un tutoriel...

Le code hexadécimal est utile lorsque vous travaillez directement au niveau du bit ou juste au-dessus. Par exemple, si vous travaillez sur un pilote où vous regardez directement les bits provenant d'un périphérique et que vous manipulez les résultats pour que quelqu'un d'autre puisse lire un résultat cohérent. Il s'agit d'une représentation compacte et facile à lire du binaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X