Bonjour,

j'ai besoin d'une fonction avec un entier non signé en parametre qui me renvoie la puissance de deux superieure.

Cette fonction sera appellée souvent donc je cherche à reduire au maximum sa complexité.
En fait j'ai deja trouvé quelque chose mais je suis sur qu'il y a mieux. Voila ce que j'ai :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int main()
{
  char rep = 'y';
 
  while (rep == 'y')
  {
    unsigned long test, puissance;
    int nb_bits = 0;
 
    cout << "Entrez un nombre" << endl;
 
    cin >> test;
	--test;
 
    while (test > 0)
    {
      test >>= 1;
	  ++nb_bits;
    }
 
    puissance = (unsigned long)pow((double)2.,(double)nb_bits);
 
    cout << puissance << endl;
    cout << "encore ? y or n" << endl;
 
    cin >> rep;
  }
  return 0;
}
Avez vous des idees ?