Página 3 de 3 PrimerPrimer 123
Resultados 17 al 18 de 18

Tema: Calculadora binario simple ¿algún desarrollador?

  1. #17
    Usuario Registrado
    Fecha de ingreso
    22 sep, 08
    Mensajes
    71
    Gracias Thanks Given 
    0
    Gracias Thanks Received 
    0
    Agradecido en
    0 Mensajes

    Predeterminado Respuesta: Calculadora binario simple ¿algún desarrollador?

    Cita Iniciado por 0therOS Ver mensaje
    ya vi mi error una disculpa borra el n--; y el x++; y escribe en ese lugar n++; en el lugar donde estaba el n--;


    no se que estaba pensando




    -(NSString*)toDecimal:(int)num {
    int n,dec,pow;
    n=0;
    dec=0;
    pow=1;

    while(n<8) {
    dec=dec+(num%10)*(pow);
    num=num/10;
    n++;
    pow=pow*2;
    }


    return [NSString stringWithFormat:@"%d", dec];
    }
    muchisimas gracias!!!! ahora si que me funciona la aplicacion, osea el conversor como queria!!!

    este algoritmo me salvo :)

    Código:
    -(NSString*)toDecimal:(int)num {
        int n,dec,pow;
        n=0;
        dec=0;
        pow=1;
    
      while(n<8) {
        dec=dec+(num%10)*(pow);
        num=num/10;
        n++;
        pow=pow*2;
    } 
    
    return [NSString stringWithFormat:@"%d", dec];
    }
    solo te puedo pedir una cosa mas?
    n,dec,pow? como actua? que es cada cosa?

    es que lo estoy documentando todo para hacer un tutorial e pdf y suburlo para que la gente practique!

    GRCACIAS!

  2. #18
    Usuario Registrado
    Fecha de ingreso
    09 nov, 11
    Mensajes
    14
    Gracias Thanks Given 
    0
    Gracias Thanks Received 
    0
    Agradecido en
    0 Mensajes

    Predeterminado Respuesta: Calculadora binario simple ¿algún desarrollador?

    te explico

    n sirve como contador

    como nosotros tenemos 8 digitos por ejemplo 10110111 mi ciclo va a ocurrir 7 veces

    durante el ciclo n++ incrememta por 1 a n.

    osea la primera vez que pasa n=0 la segunda n=1 etc.... y cuando n=8 ya no entra al ciclo pues n no es menor que 8.

    dec es la variable donde se guarda el resultado inicialmente es 0 .

    num%10 es una division residual ,si tu divides 1001 por ejemplo entre 10 sabemos que es 100.1 en este caso como usamos enteros estos no usan punto decimal ,por lo que si tu divides 1001/1 obtienes 100 y el 1 restante es el residuo cuando haces una division residual te entrega el residuo en este caso es el 1 que esta hasta la derecha que es el que vamos a analizar

    sabemos que para convertir manualmente se analiza el binario de derecha a izquierda de esta manera

    binario 11001

    2^0=1

    2^1=2

    2^2=4

    2^3=8

    2^4=16

    etc...

    2^0=1 1x 1=1

    2^1=2. 2x0=0

    2^2=4. 4x0=0

    2^3=8. 8x1=8

    2^4=16. 16x1=16

    y colocamos nuestro numero de derecha a izquierda nuestro primer numero es 1 por lo que multiplicamos por 1, el segundo es 0 y multiplica a 2 etc...

    pow viene siendo el 2 que se multiplica gradualmente la primera vez pow es 1 (2^0) la segunda vez que pasa el ciclo pow es 2 (2^1) la tercera vez es 4 (2^2) y asi sucesivamente

    por lo que en

    dec=dec + (num%10) * pow;

    seria la primera vez de este binario 101

    dec= (0) + (el residuo de la division es 1) * (pow es 1 la primera vez)

    dec=0 + 1*1

    dec =1

    y asi sucesivamente ocurre ,cuando el residuo es 0 pow se multiplica por 0 y entonces dec=dec +0 y no se suma nada al resultado.

    despues de la suma se hace la division normal entre 10 para cortar el miembro de la derecha y se repite el proceso.

    esta dificil explicar, no hay mejor manera de entenderlo que simular el proceso en una hoja de papel
    y perdon por si me extendi en mi explicacion y no era lo que preguntabas XD, saludos

Página 3 de 3 PrimerPrimer 123

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •