Hola dehm gracias por responderme, me sirvió lo que me dijiste, a raíz de eso encontré una solución más simple del problema:
Código C++:
Ver original#include <cstdlib>
#include <iostream>
#include <iterator>
using namespace std;
/**
* Código de: https://www.discoduroderoer.es/ejercicios-propuestos-y-resueltos-metodos-y-funciones-de-java/
*
* 11. Crea una aplicación que nos convierta un número en base decimal a binario.
* Esto lo realizara un método al que le pasaremos el numero como parámetro,
* devolverá un String con el numero convertido a binario.
*
* Para convertir un numero decimal a binario, debemos dividir entre 2 el numero
* y el resultado de esa división se divide entre 2 de nuevo hasta que no se
* pueda dividir mas, el resto que obtengamos de cada división formara el
* numero binario, de abajo a arriba.
*
* Veamos un ejemplo: si introducimos un 8 nos deberá devolver 1000
*/
string binario(int num);
/*--------------------*/
int main(int argc, char** argv) {
int num;
cout << "\n Ingresa un número entre 0 y 255: ";
cin >> num;
if(num < 0 || num > 255) {
cout << "\n ERROR";
} else {
cout << "\n El binario de " << num << " es " << binario(num);
}
return 0;
}
string binario(int num) {
string binario= "";
string digito;
for(int i = num; i > 0; i /= 2){
//System.out.println(i + " / " + 2 + " resto: " + (i % 2));
if(i % 2 == 1){
digito = "1";
}else{
digito = "0";
}
//Se añade el digito al principio (mira la imagen del post)
binario = digito + binario;
}
return binario;
}
Gracias por la ayuda. Saludos.