TESTER SI UN TABLEAU EST UNE PUISSANCE DE 2

Signaler
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
5 octobre 2006
-
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21425-tester-si-un-tableau-est-une-puissance-de-2

Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
3
exact mais je m'en sers pour le traitement d'image qui font 1 GO en taille.

donc elle font rarement mais de 128 de résolutions
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
5 octobre 2006
2
Argh, j'ai qu'un UltraSparc sous la main (qui tombe en ruine).
Et tu n'a pas de différence de perf ? étrange, mais je n'insiste pas.

Autre point à explorer sur le sujet.
Ta méthode est boguée ;-)
imaginons que nous n'ayons que des octets à dispo (8 bits)
soit le 0 - 255. 2^7 -> 128, si tu appelles ta fonction avec
un nombre supérieur à 128, tu vas avoir 128 < x, tu vas shifter
une fois de plus or 2^8->dépassement tu retombres à 0, et tu bloucles. (1<<8)0, (1<<9) 0,...
Le même raisonnement est applicable pour les longs.
Sauf erreur de ma part évidement.
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
3
je compile le gcc sur une station sunblade
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
5 octobre 2006
2
regarde l'assembleur généré, tu verras bien comment le code
est optimisé dans les deux cas.
Je n'ai pas trouvé un compilo me donnant la même performance
pour les deux codes.
Sauf peut être le tien. (j'ai pas encore VC .NET 2003, je ferai
les tests avec celui-là aussi).
Afficher les 8 commentaires