elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Píldoras formativas en seguridad de la información


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Programa que pase un número de decimal a binario.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa que pase un número de decimal a binario.  (Leído 27,390 veces)
rayk

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Programa que pase un número de decimal a binario.
« en: 30 Junio 2011, 19:57 »

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


En línea

тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: Programa que pase un número de decimal a binario.
« Respuesta #1 en: 30 Junio 2011, 20:07 »

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..


En línea

rayk

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Programa que pase un número de decimal a binario.
« Respuesta #2 en: 30 Junio 2011, 20:32 »

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++
En línea

тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: Programa que pase un número de decimal a binario.
« Respuesta #3 en: 30 Junio 2011, 20:34 »

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



En línea

rayk

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Programa que pase un número de decimal a binario.
« Respuesta #4 en: 30 Junio 2011, 20:42 »

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
En línea

тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: Programa que pase un número de decimal a binario.
« Respuesta #5 en: 30 Junio 2011, 20:43 »

Cambia, cout por printf y cin por scanf

Las librerias requeridas..

y quiita el "std" y punto jaja
En línea

armando_rivas

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Programa que pase un número de decimal a binario.
« Respuesta #6 en: 2 Diciembre 2015, 01:08 »

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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines