Dejo el ejercicio así saben de que se trata y por si alguien le gustaría hacerlo (no estoy pidiendo que me hagan el ejercicio)
El ejercicio dice lo siguiente:
Citar
Escriba un programa que reciba como entrada un entero que contenga solo 0s y 1s (es decir, un entero "Binario"), y que imprima su equivalente decimal. Use los operadores módulo y división para elegir los dígitos del número "binario" una a la vez, de derecha a izquierda. En forma parecida al sistema numérico decimal, donde el dígito más a la derecha tiene un valor posicional de 1 y el siguiente dígito a la izquierda tiene un valor posicional de 10, después 100, después 1000, etcétera, en el sistema numérico binario, el dígito más a la derecha tiene un valor posicional 1, el siguiente dígito a la izquierda tiene un valor posicional de 2, luego 4, luego 8, etcétera. Así, el número decimal 234 se puede interpretar como 2*100 + 3*10 + 4*1. El equivalente decimal del número binario 1101 es 1*1 + 0*2 + 1*4 + 1*8.
Ok, el código que hice que no me imprime nada solo la pregunta del main es:
Main.cpp
Código
#include <iostream> using std::cin; using std::cout; #include "Binario.h" int main() { int numero; cout <<"Ingrese el numero binario para mostrar su equivalente decimal: "; cin >> numero; Binario Binario1(numero); cin.get(); cin.get(); return 0; }
Binario.h
Código
class Binario { public: Binario(int); void confirmarNumero(int); };
Binario.cpp
Código
#include <iostream> using std::cout; #include "Binario.h" Binario::Binario(int numero) { confirmarNumero(numero); } void Binario::confirmarNumero(int numero) { int numeroDivisor = 10; int escala = 1; int numeroSacado; while ((numero / numeroDivisor) == 0) { numeroSacado= numero % numeroDivisor; if (escala == 1) { cout <<numeroSacado <<"*1 " ; } else { cout <<numeroSacado <<"*" <<escala <<" "; } numeroDivisor= numeroDivisor*10; } }
PD: tengo que desarollar el tema de la variable escala pero eso no influye en el resultado del programa ejecutado