PDA

View Full Version : [C]Conversione da binario a testo


RaouL_BennetH
11-06-2007, 14:04
Ciao a tutti :)

Mi sapreste indicare come fare per poter `tradurre` una serie di 010101101 in testo in linguaggio C ?

Grazie mille.

RaouL.

Vi spiego perchè:

Ho ricevuto uno strano messaggio sul cellulare in cui c'è scritto solo:


0100011010110000011
1100000100111000101
1010010000000011111
111111011110101010010
1110001010101010010
000000101010010100
001000001001110001
0101000110101100010
1010


Siccome dal prefisso del numero che mi è apparso sembra provenire dalle filippine, vorrei tanto capire cosa c'è scritto.

Mi date una mano gigante per favore?

cionci
11-06-2007, 14:16
Vuoi fare un esercizio ?
Altrimenti a farlo a mano ci vogliono 5 minuti ;)

cionci
11-06-2007, 14:19
01000110
10110000
01111000
00100111
00010110
10010000
00001111
11111110
11110101
01001011
10001010
10101001
00000001
01010010
10000100
00010011
10001010
10001101
01100010
1010

Tra l'altro non è nemmeno un multiplo di 8...

andbin
11-06-2007, 14:28
Mi sapreste indicare come fare per poter `tradurre` una serie di 010101101 in testo in linguaggio C ?Per essere più precisi, vuoi trasformare una stringa con la rappresentazione del binario in una stringa con i caratteri composti dal valore binario.

Si può fare senza grossi problemi ..... comunque così .. "a vista" il codice che hai postato non mi sembra che rappresenti nulla di leggibile o che abbia senso (ho provato su 7 bit e su 8 bit).

RaouL_BennetH
11-06-2007, 14:36
può darsi anche che io l'abbia trascritto male :(

Il fatto strano è che mi è arrivato sul cellulare con un numero stranissimo come origine.

@ Cionci: Si, mi va benissimo fare un esercizio, mi daresti tu e/o il grande andbin qualche spunto?

andbin
11-06-2007, 14:49
@ Cionci: Si, mi va benissimo fare un esercizio, mi daresti tu e/o il grande andbin qualche spunto?...togli "grande", please.

Comunque una cosa semplice e veloce in "C" è questa: metti la stringa binaria in un file di testo. Nel programma fai un ciclo di letture con getchar(), verifichi che il carattere sia '1' o '0' (scartando così newline ecc...) e man mano che hai dei bit li inserisci a destra di un char (shiftandolo a sinistra). Quando hai ottenuto 8 bit, stampi il char e riazzeri il tutto (ti serve un contatore dei bit, chiaramente).
Il programma lo eseguirai con: tuoprog < testo.txt.

È la cosa più immediata ....

RaouL_BennetH
11-06-2007, 15:39
...togli "grande", please.

Comunque una cosa semplice e veloce in "C" è questa: metti la stringa binaria in un file di testo. Nel programma fai un ciclo di letture con getchar(), verifichi che il carattere sia '1' o '0' (scartando così newline ecc...) e man mano che hai dei bit li inserisci a destra di un char (shiftandolo a sinistra). Quando hai ottenuto 8 bit, stampi il char e riazzeri il tutto (ti serve un contatore dei bit, chiaramente).
Il programma lo eseguirai con: tuoprog < testo.txt.

È la cosa più immediata ....

Grazie, ora ci provo.