Je utilise bitset et pour améliorer les performances de mon code je veux le changer en bitset dynamique, mais après avoir lu quelques messages à ce sujet, je ne sais toujours pas comment définir mon code.
Alors j'ai joint mon code et j'aimerais savoir si l'un d'entre vous pourrait m'aider en me donnant des idées sur ce que je devrais modifier et comment.
Merci d'avance :)
// Programme qui convertit un nombre de décimal en binaire et montre les positions
// où le bit du nombre binaire contient 1
#include
#include
#include
#include
using namespace std;
int main()
{
unsigned long long int dec;
bitset<5000> binaryNumber;
bitset<5000> mask;
mask = 0x1;
cout << "Écrivez un nombre en décimal : ";
cin >> dec;
// Conversion de décimal à binaire
int x;
for (x = 0; x < binaryNumber.size(); x++)
{
binaryNumber[x] = dec % 2;
dec = dec / 2;
}
cout << "Le nombre " << dec << " en binaire est : ";
for (x = (binaryNumber.size() - 1); x >= 0; x--)
{
cout << binaryNumber[x];
}
cout << endl;
// Stockage des positions avec des valeurs 1
vector valueTrue;
for (int r = 0; r < binaryNumber.size(); r++) //
{
if (binaryNumber.test(r) & mask.test(r)) // si les deux sont des bit "1"
// nous stockons dans le vecteur valueTrue
{
valueTrue.push_back(r);
}
mask = mask << 1;
}
int z;
cout << "Les bits 1 sont à la position : ";
for (z = 0; z < valueTrue.size(); z++)
{
cout << valueTrue.at(z) << " ";
}
cout << endl;
system("pause");
return 0;
}