0
votes

C ++: binaire à décimal avec apparence du processus de conversion

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

1 * (2 ^ 4) + 1 * (2 ^ 2) + 1 * (2 ^ 1)

L'équivalent décimal de 10110 est: 22

mais la valeur du compteur au milieu de la boucle échoue Pour diminuer, menant à ce

exemple image

Ceci est mon code actuel xxx


0 commentaires

3 Réponses :


1
votes

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";
}


0 commentaires

0
votes

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++;
 }


1 commentaires

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)



0
votes

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: xxx


0 commentaires