Autor
|
Tema: Imprimir una palabra en binario[?] (Leído 3,539 veces)
|
Slava_TZD
Wiki
Desconectado
Mensajes: 1.466
♪ [8675309] ♪
|
Buenas, estoy haciendo un pequeño programa que pase una cadena de texto a binario, tengo algo así: #include <stdio.h> #include <string.h> main() { char palabra[10]; int desc[10],i=0,a,bin[80],inter,k,c,b; printf("Introduce una palabra: "); for(i;i<a;i++) { desc[i]=palabra[i]; } for(i=0;i<9;i++) { b=desc[0]/2; c=desc[0]%2; desc[0]=b; bin[i]=c; if(desc[0]==0 || desc[0]==1) { i++; b=desc[0]/2; c=desc[0]%2; desc[0]=b; bin[i]=c; break; } } for(i =7;i >-1;i --) printf("%d", bin [i ]); }
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í: k=0; do { for(i=k;i<k+7;i++) { b=desc[m]/2; c=desc[m]%2; desc[m]=b; bin[i]=c; if(desc[m]==0 || desc[m]==1) { i++; b=desc[m]/2; c=desc[m]%2; desc[m]=b; bin[i]=c; break; } } m++; k=k+7; }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
Mensajes: 823
|
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
Mensajes: 1.466
♪ [8675309] ♪
|
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
Mensajes: 1.466
♪ [8675309] ♪
|
Solucionado al final he hecho algo así, luego para leerlo le doy la vuelta cada 8 posiciones al vector bin e imprimo: #include <stdio.h> #define BITS 8 main() { int desc[10],i, tamanyo, bin[80], b, n, c, g; tamanyo = i = b = n = c = g = 0; printf("letras (max 10 caracteres): "); while((desc [tamanyo ]=getchar())!='\n') { ++tamanyo; } while(g<tamanyo) { while(i<BITS) { b=desc[g]/2; c=desc[g]%2; desc[g]=b; bin[n]=c; ++i; ++n; } g++; i=0; } }
|
|
« Ú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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con Seleccionar Palabra por Palabra
Programación Visual Basic
|
RickJack
|
6
|
5,614
|
15 Septiembre 2008, 23:47 pm
por RickJack
|
|
|
[ code=C++] Conversor binario-decimal-binario
« 1 2 »
Programación C/C++
|
Chonk
|
11
|
24,252
|
9 Julio 2010, 17:52 pm
por Debci
|
|
|
contar caracteres de una palabra y devolver que palabra es en java
Java
|
Cooltan
|
4
|
23,814
|
6 Abril 2011, 12:21 pm
por Cooltan
|
|
|
Imprimir la palabra mas larga de un string C++
Programación C/C++
|
MellaSystems
|
8
|
9,491
|
19 Agosto 2016, 23:29 pm
por Skynet96
|
|
|
imprimir una palabra vertical paralela a la otra
Programación C/C++
|
MellaSystems
|
3
|
3,771
|
24 Febrero 2015, 04:30 am
por engel lex
|
|