begin process at 2012 05 30 11:00:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Puissance de 2 : fonction ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Puissance de 2 : fonction ?

mercredi 10 mars 2010 à 15:49:24 | Puissance de 2 : fonction ?

noname001

Bonjour à tous,

Existe-il une fonction qui renverrait une valeur ou une bool indiquant qu'un nombre est une puissance de 2 ?

Merci d'avance
(Ps : je pourrais évidemment le faire moi-même mais ça alourdirait mon code)
mercredi 10 mars 2010 à 22:06:10 | Re : Puissance de 2 : fonction ?

BruNews

Administrateur CodeS-SourceS
Je ne vois pas en quoi appeler une fonction perso alourdirait quoi que ce soit par rapport à une fonction fournie par le compilo.

Je ne me souviens pas d'une toute faite.

ciao...
BruNews, MVP VC++
jeudi 11 mars 2010 à 09:13:18 | Re : Puissance de 2 : fonction ?

louis14

Réponse acceptée !
Bonjour,
Je pense qu'il n'y a pas de fonction toute faite Mais j'avais utilisé ça : pour tout x > 0 x est une puissance de 2 si (x & (x − 1)) = 0
à utiliser pour ta fonction.
D'autres indications à cette adresse :
http://en.wikipedia.org/wiki/Power_of_two
En espérant que cela t'aidera.
louis
jeudi 11 mars 2010 à 09:48:25 | Re : Puissance de 2 : fonction ?

BruNews

Administrateur CodeS-SourceS
Une solution sans boucle sur CPU Intel et compatible:
Si result de BSR et BSF égaux alors est puissance de 2.

ciao...
BruNews, MVP VC++
jeudi 11 mars 2010 à 21:27:34 | Re : Puissance de 2 : fonction ?

noname001

Effectivement, cette technique marche parfaitement louis et avec un minimum de complexité.
Je ne saisi pas comment ce code permet de déterminer si un nombre est oui ou non une puissance de deux , malgré le lecture du lien wiki.
Pourrais-tu m'éclairer ?
jeudi 11 mars 2010 à 21:34:41 | Re : Puissance de 2 : fonction ?

BruNews

Administrateur CodeS-SourceS
Fonctionne pour TOUT nbr de 32 bits:
// int __fastcall bnIsDwPowTwo(DWORD n)
bnIsDwPowTwo PROC
xor eax, eax
bsr edx, ecx
je short ispowEXIT
bsf eax, ecx
cmp eax, edx
sete al
ispowEXIT:
ret 0
bnIsDwPowTwo ENDP

ciao...
BruNews, MVP VC++
vendredi 12 mars 2010 à 08:42:06 | Re : Puissance de 2 : fonction ?

louis14


Il faut étudier la représentation binaire des puissances de 2 ( 1 et x fois 0) et tout autre nombre. Le moins 1 décale d'une position à gauche et ensuite un ET logique.
J'espère t'avoir aider.

louis


Cette discussion est classée dans : fonction, puissance


Répondre à ce message

Sujets en rapport avec ce message

arrondi [ par Arnaud16022 ] good-day everybodyya quelques temps je m suis amusé (si on peut dire) a refaire la fonction round() de la TI 83 en TIBasic.Ca marchait super bien, et programeation d'une type de puissance [ par awalle ] bon soir à tout le monde j'ai un problème de la fonction puissance en langage C. Mon problème est le faite que, je veux programmer en langage C Programme externe avec paramêtre [ par hardgamer666 ] Salut tout le monde,Voilà, j'ai un petit problème, j'aimeraislancé une application depuis un programme consol écrit en C++. Le problème c'est que je n SAFEARRAY [ par jazz2 ] Bonjour, obligé de devoir utiliser des SAFEARRAY, je voudrais créer une fonction avec plusieurs tableaux de type SAFERRAY. Je ne peux pas les entrer d 100 fonctions pour 1 action ou 1 fonction pour 100 action [ par tibob51 ] Bonjour a tous,J'ai une question toute bête.J'ai une trentaine de valeurs a récupérer dans diverses structures.Quel est la méthode me conseiilez vous: String [ par MadMax1024 ] Bonjour ou Rebonjour comme vous le sentezEncore besoin de vos conseils.Dans ma fonction principale (main) je fait appel à une fonction externe qui me Hook et focus [ par krokro6 ] Salut à tous, j'ai un gros problème depuis que j'ai commencé à utiliser les hooks, le problème est le suivant : pourquoi quand j'apelle ma fonction qu Convertir un grand décimal en hex [ par superchinois ] Bonjour,   Je sais que ca ne se fait pas trop, mais je n'y connais rien en c++  et je n'arrive pas à coder une fonction de conversion de grands décima abération pointeurs de fonction ? [ par acx01b ] bonjour, quelqu'un pourrait m'expliquer ce que signifie ce code pour nos compilateurs ? int mafonction () { return 54; } int main() { int (*fun Convertion VB -> C++ aide svp. [ par krokro6 ] Voilà, je dois convertir une fonction VB en c++, j'ai déjà commencé (même terminé) la convertion avec celui qui a fait cette fonction mais je ne sais


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,218 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales