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: