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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Imprimir una palabra en binario[?]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Imprimir una palabra en binario[?]  (Leído 2,530 veces)
Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Imprimir una palabra en binario[?]
« en: 8 Mayo 2011, 16:43 pm »

Buenas, estoy haciendo un pequeño programa que pase una cadena de texto a binario, tengo algo así:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. main()
  4. {
  5.    char palabra[10];
  6.    int desc[10],i=0,a,bin[80],inter,k,c,b;
  7.    printf("Introduce una palabra: ");
  8.    scanf("%s", palabra);
  9.    a=strlen(palabra);
  10.    for(i;i<a;i++)
  11.    {
  12.        desc[i]=palabra[i];
  13.    }
  14.    for(i=0;i<9;i++)
  15.    {
  16.  
  17.        b=desc[0]/2;
  18.        c=desc[0]%2;
  19.        desc[0]=b;
  20.        bin[i]=c;
  21.        if(desc[0]==0 || desc[0]==1)
  22.        {
  23.            i++;
  24.            b=desc[0]/2;
  25.            c=desc[0]%2;
  26.            desc[0]=b;
  27.            bin[i]=c;
  28.            break;
  29.        }
  30.    }
  31.    for(i=7;i>-1;i--) printf("%d", bin[i]);
  32.  
  33. }

Con esto imprimo con exíto una sola letra, le he estado dando vueltas a ver como pasar desc[10] a binario y nada...he intentado con algo así:

Código
  1. k=0;
  2.    do
  3.    {
  4.    for(i=k;i<k+7;i++)
  5.    {
  6.  
  7.        b=desc[m]/2;
  8.        c=desc[m]%2;
  9.        desc[m]=b;
  10.        bin[i]=c;
  11.        if(desc[m]==0 || desc[m]==1)
  12.        {
  13.            i++;
  14.            b=desc[m]/2;
  15.            c=desc[m]%2;
  16.            desc[m]=b;
  17.            bin[i]=c;
  18.            break;
  19.        }
  20.    }
  21.    m++;
  22.    k=k+7;
  23.    }while(m<=a);
Pero no me funciona :( ¿Alguien me da una ayuda?

EDITO: ¿Supongo que no habrá una forma directa de trabajar con binario en C como si la hay en otros lenguajes no?


« Última modificación: 8 Mayo 2011, 17:20 pm por Tzhed » En línea


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Imprimir una palabra en binario[?]
« Respuesta #1 en: 8 Mayo 2011, 17:55 pm »

Tu primer problema está en que una cadena de texto la componen chars, que ocupan 8 bits, es decir, cada char necesitaría estar representado por un vector de 8 bits, no por 1 bit como haces tu en tu código.

Por otro lado, tienes lo siguiente: si tu a un char, le asignas el valor de un entero, va a poner el valor ASCII asociado a ese entero, es decir, para 0, te va a poner el final de cadena.

Si lo que quieres es pasar un entero a binario, hay otras formas que no implican cadenas de carácteres sino divisiones entre del propio número y obtener el resto.


En línea

Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Re: Imprimir una palabra en binario[?]
« Respuesta #2 en: 8 Mayo 2011, 18:53 pm »

Tu primer problema está en que una cadena de texto la componen chars, que ocupan 8 bits, es decir, cada char necesitaría estar representado por un vector de 8 bits, no por 1 bit como haces tu en tu código.

Por otro lado, tienes lo siguiente: si tu a un char, le asignas el valor de un entero, va a poner el valor ASCII asociado a ese entero, es decir, para 0, te va a poner el final de cadena.

Si lo que quieres es pasar un entero a binario, hay otras formas que no implican cadenas de carácteres sino divisiones entre del propio número y obtener el resto.

La cosa es que el fin del programa no acaba en pasar una cadena a binario, por lo que primero paso caracter a caracter a un vector y luego es cada numero del vector lo que deseo pasar a binario y almacenarlo en el otro vector. Si es posible dime alguna otra forma de hacerlo, he buscado alguna funcion o algo..pero na ;)
En línea


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Re: Imprimir una palabra en binario[?]
« Respuesta #3 en: 9 Mayo 2011, 08:42 am »

Solucionado al final he hecho algo así, luego para leerlo le doy la vuelta cada 8 posiciones al vector bin e imprimo:

Código
  1. #include <stdio.h>
  2. #define BITS 8
  3. main()
  4. {
  5.    int desc[10],i, tamanyo, bin[80], b, n, c, g;
  6.    tamanyo = i = b = n = c = g = 0;
  7.    printf("letras (max 10 caracteres): ");
  8.    while((desc[tamanyo]=getchar())!='\n')
  9.    {
  10.        ++tamanyo;
  11.        if(tamanyo>=10) exit(1);
  12.    }
  13.    while(g<tamanyo)
  14.    {
  15.        while(i<BITS)
  16.        {
  17.            b=desc[g]/2;
  18.            c=desc[g]%2;
  19.            desc[g]=b;
  20.            bin[n]=c;
  21.            ++i;
  22.            ++n;
  23.        }
  24.        g++;
  25.        i=0;
  26.    }
  27. }
« Última modificación: 9 Mayo 2011, 09:13 am por Tzhed » En línea


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Seleccionar Palabra por Palabra
Programación Visual Basic
RickJack 6 4,414 Último mensaje 15 Septiembre 2008, 23:47 pm
por RickJack
[ code=C++] Conversor binario-decimal-binario « 1 2 »
Programación C/C++
Chonk 11 20,686 Último mensaje 9 Julio 2010, 17:52 pm
por Debci
contar caracteres de una palabra y devolver que palabra es en java
Java
Cooltan 4 22,209 Último mensaje 6 Abril 2011, 12:21 pm
por Cooltan
Imprimir la palabra mas larga de un string C++
Programación C/C++
MellaSystems 8 6,917 Último mensaje 19 Agosto 2016, 23:29 pm
por Skynet96
imprimir una palabra vertical paralela a la otra
Programación C/C++
MellaSystems 3 2,026 Último mensaje 24 Febrero 2015, 04:30 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines