elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 00:46  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  codigo conversion decimal a binario y complemento a dos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: codigo conversion decimal a binario y complemento a dos  (Leído 1,339 veces)
m@o_614

Desconectado Desconectado

Mensajes: 35


Ver Perfil
codigo conversion decimal a binario y complemento a dos
« en: 15 Diciembre 2011, 19:20 »

Código
 
int binario(int num);
int invertir(int num);

int main()
{
    int num,complemento,res;
    printf("Bits en la RAM\n\n");
    printf("Dame un valor entero: ");
    scanf("%d",&num);
    if(num>0)
        binario(num);
    else if(num<0)
    {
        complemento=binario(num);
        res=complemento_a_dos(complemento);
    }

    return 0;
}

int binario(int num)
{
    if(num>1)
    {
        binario(num/2);
        num%=2;
        printf("%d",num);
    }
    else
    {
        printf("%d",num);
        return num;
    }
    return 0;
}

int complemento_a_dos(int complemento)
{
    int res;
    while((complemento%=10)!=1){
    complemento/=10;
    }
       res=~(complemento%=10);

 return res;
}

tengo un problema con este codigo, hasta la funcion que convierte decimal en binario esta bien, pero despues cuando ingrese un numero negativo me tiene que dar el complemento a dos, y ahí fue donde me perdi completamente. Estaba pensando que tal vez con divisiones sucesivas hasta que me aparezca un 1 de derecha a izquierda y despues los digitos que le siguen cambiar los 0 por unos y viceversa


En línea
El_Java

Desconectado Desconectado

Mensajes: 132



Ver Perfil WWW
Re: codigo conversion decimal a binario y complemento a dos
« Respuesta #1 en: 16 Diciembre 2011, 18:02 »

Complemento a dos de un numero:
Wikipedia: Otra forma es negar todos los dígitos (se haya el complemento a 1) y después sumar un 1 al resultado, viene a ser lo mismo que lo anteriormente explicado.

Código
#include <iostream>
int main(){
   int num;
   cin >> num;
 
   cout << ((~num)+1) << endl;
}
 


En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Conversion Decimal -->Bnario
Programación C/C++
kraxyny_advance 6 849 Último mensaje 12 Abril 2006, 21:14
por kraxyny_advance
Conversión de Octal A dECIMAL
Programación C/C++
elpollo_12 5 6,607 Último mensaje 20 Mayo 2008, 15:56
por elpollo_12
Conversion de numeros decimal a octal
Programación C/C++
EricCorona 6 5,733 Último mensaje 22 Septiembre 2009, 01:54
por Aeros
[ code=C++] Conversor binario-decimal-binario
Programación C/C++
Chonk 11 5,026 Último mensaje 9 Julio 2010, 17:52
por Debci
"Ayuda" con Codigo(Pasar de Decimal a Binario)
.NET
Jirp96 4 1,575 Último mensaje 8 Mayo 2011, 22:20
por Jirp96
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines