Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: rayk en 30 Junio 2011, 19:57 pm



Título: Programa que pase un número de decimal a binario.
Publicado por: rayk en 30 Junio 2011, 19:57 pm
Hola quería saber si alguien me podría echar una mano con este código de programacón. El programa lo que hace es pasar un número en el sistema decimal al binario. Lo he hecho cogiendo los restos de las sucesivas divisiones entre dos y el último cociente, pero solo consigo mostrarlos por pantalla en el orden en el que voy consiguiendo los unos y ceros, por lo que el numero en binario esta al reves (leido de derecha a izquierda).

pongo lo que llevo de codigo:

#include <stdio.h>
#include <stdlib.h>
// Pasar un número de decimal a binario.
int main()
{
    int numero, c, r;
    scanf("%d", &numero);
    c=numero/2;
    while(c>1)
    {         
              r=numero%2;
              printf("%d", r);   
              c=numero/2;
              numero=c;         
    }
    printf("%d", c);
    system("pause");
}


Título: Re: Programa que pase un número de decimal a binario.
Publicado por: тαптяα en 30 Junio 2011, 20:07 pm
porque no lo haces mas simple?

Código:
void binary(int number) {
int remainder;

if(number <= 1) {
cout << number;
return;
}

remainder = number%2;
binary(number >> 1);
cout << remainder;
}

Eso es lo facil

para arreglar lo tuyo, tendriamos que coger la cadena de numeros y darle la vuelta a base de punteros y un for. No tiene mucho misterio pero bueno..


Título: Re: Programa que pase un número de decimal a binario.
Publicado por: rayk en 30 Junio 2011, 20:32 pm
Estoy intentando entender el codigo que has puesto pero como he empezado hace poco hay algunas cosas que no comprendo.las cosas que no entiendo son:

void binary(int number)

¿qué es cout?

y el simbolo <<

te agradeceria si me lo explicases un poco. Saludos y gracias.

PD. se me olvido decir que esta en lenguaje c, no se si lo que has puesto es c o c++


Título: Re: Programa que pase un número de decimal a binario.
Publicado por: тαптяα en 30 Junio 2011, 20:34 pm
C++

te dejo el code completo por si acaso.


solo sirve para numeros mayores que 1.

Código:
#include <iostream>

using namespace std;

void binary(int number) {
int remainder;

if(number <= 1) {
cout << number;
return;
}

remainder = number%2;
binary(number >> 1);
cout << remainder;
}

int main() {
int number;

cout << "Introduce un numero entero: ";
cin >> number;
if (number < 0){
return main();
}


else {
cout << "Binario: ";
binary(number);
cout << endl;
}
}





Título: Re: Programa que pase un número de decimal a binario.
Publicado por: rayk en 30 Junio 2011, 20:42 pm
Vale, ya decia yo que habia algunas cosas que no entendia y es porque esta en c++.
Si hay alguien que me pueda decir como hacerlo en c, siguiendo mi codigo o con otro que llegue a la solucion de maner más fácil, se lo agradeceria. Saludos


Título: Re: Programa que pase un número de decimal a binario.
Publicado por: тαптяα en 30 Junio 2011, 20:43 pm
Cambia, cout por printf y cin por scanf

Las librerias requeridas..

y quiita el "std" y punto jaja


Título: Re: Programa que pase un número de decimal a binario.
Publicado por: armando_rivas en 2 Diciembre 2015, 01:08 am
aqui hice un codigo recursivo para retornar el binario como entero

int Abin(int numero){
 if(numero/2<1){
    return numero%2;
 }else{
    return (Abin(numero/2)*10)+numero%2;
 }   
}

si le encuentran alguna falla me pueden avisar