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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  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 15,331 veces)
m@o_614


Desconectado Desconectado

Mensajes: 389


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

Código
  1.  
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: 144



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

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
  1. #include <iostream>
  2. int main(){
  3.    int num;
  4.    cin >> num;
  5.  
  6.    cout << ((~num)+1) << endl;
  7. }
  8.  


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[ code=C++] Conversor binario-decimal-binario « 1 2 »
Programación C/C++
Chonk 11 21,943 Último mensaje 9 Julio 2010, 17:52 pm
por Debci
"Ayuda" con Codigo(Pasar de Decimal a Binario)
.NET (C#, VB.NET, ASP)
Jirp96 4 4,707 Último mensaje 8 Mayo 2011, 22:20 pm
por Jirp96
[Duda ] Codigo Python Binario a Decimal y viceversa *2.7*
Scripting
yujadeh 2 8,935 Último mensaje 5 Octubre 2012, 01:50 am
por yujadeh
[Codigo] Binario a Decimal
Programación C/C++
Mario Olivera 1 1,393 Último mensaje 18 Mayo 2015, 19:50 pm
por engel lex
[Código] Decimal a binario
Programación C/C++
Mario Olivera 2 1,868 Último mensaje 21 Mayo 2015, 23:57 pm
por Stakewinner00
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines