Je tente de faire un programme qui convertit binaire en décimal, mais avoir les besoins pour montrer le processus de conversion
entrer un nombre binaire: 10110 p>
1 * (2 ^ 4) + 1 * (2 ^ 2) + 1 * (2 ^ 1) p>
L'équivalent décimal de 10110 est: 22 p>
mais la valeur du compteur au milieu de la boucle échoue Pour diminuer, menant à ce p>
exemple image P >
Ceci est mon code actuel p>
3 Réponses :
Utilisez simplement un jeu de bits:
#include <bitset>
#include <iostream>
int main()
{
std::bitset<32> val;
std::cin >> val;
std::cout << val.to_ulong() << "\n";
}
Vous devez inviter le processus de commande ascendante, au lieu de descendre, il s'agit de correspondre à votre algorithme, qui est en ordre ascendant
Donc, dans votre dernier moment, au lieu de cela: P>
while(bin > 0)
{
bin=bin/10;
counter2++;
}
Mais la sortie doit être 1 * (2 ^ 4) + 1 * (2 ^ 2) + 1 * (2 ^ 1) avec votre suggestion qu'elle imprime 1 * (2 ^ 1) + 1 * (2 ^ 2) + 1 * (2 ^ 4)
Comme déjà signalé, vous calculez et affichez le résultat dans différentes commandes. Je vous suggère de stocker le résultat et de l'afficher plus tard. Quelque chose comme: