Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/06/2019, 12:18
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: traduciendo números binarios en c++

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
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <iterator>
  4. using namespace std;
  5.     /**
  6.      * Código de: https://www.discoduroderoer.es/ejercicios-propuestos-y-resueltos-metodos-y-funciones-de-java/
  7.      *
  8.      * 11. Crea una aplicación que nos convierta un número en base decimal a binario.
  9.      * Esto lo realizara un método al que le pasaremos el numero como parámetro,
  10.      * devolverá un String con el numero convertido a binario.
  11.      *
  12.      * Para convertir un numero decimal a binario, debemos dividir entre 2 el numero
  13.      * y el resultado de esa división se divide entre 2 de nuevo hasta que no se
  14.      * pueda dividir mas, el resto que obtengamos de cada división formara el
  15.      * numero binario, de abajo a arriba.
  16.      *
  17.      * Veamos un ejemplo: si introducimos un 8 nos deberá devolver 1000
  18.      */
  19.     string binario(int num);
  20.     /*--------------------*/
  21.     int main(int argc, char** argv) {
  22.         int num;
  23.         cout << "\n Ingresa un número entre 0 y 255: ";
  24.         cin >> num;
  25.         if(num < 0 || num > 255) {
  26.             cout << "\n ERROR";
  27.         } else {
  28.             cout << "\n El binario de " << num << " es " << binario(num);
  29.         }
  30.         return 0;
  31.     }
  32.     string binario(int num) {
  33.         string binario= "";
  34.         string digito;
  35.         for(int i = num; i > 0; i /= 2){
  36.             //System.out.println(i + " / " + 2 + " resto: " + (i % 2));
  37.             if(i % 2 == 1){
  38.                 digito = "1";
  39.             }else{
  40.                 digito = "0";
  41.             }
  42.             //Se añade el digito al principio (mira la imagen del post)
  43.             binario = digito + binario;
  44.         }
  45.         return binario;
  46.     }

Gracias por la ayuda. Saludos.
__________________
Si te interesa, visita mi perfil de Linkedin. Gracias