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 :(