Newsgroup: it.comp.sicurezza.varie
Titolo: ASCII

Salve,
qualcuno può indicarmi una fonte che illustri in dettaglio il funzionamento
della codifica ASCII: intendo dire come essa è implementata a livello di
codice, quindi come funziona un "traduttore ascii"?
Grazie
K
__________________________________________________________________ "Kurt
Fleißig" ICQ#: 158716837 Current ICQ status: + More ways to contact me
__________________________________________________________________

 come funziona un "traduttore ascii"?
Ad esempio cosi` (...includendo stdio.h.... ;-) ):
int main(){int i,nnn=0;while(EOF!=(i=getc(stdin))){printf("%3d",i);
if(++nnn>=17){nnn=0;printf("\n");};};if(nnn)printf("\n");return 0;}
Ecco un messaggio segretissimo....
 84 114 101  32  65 110 101 108 108 105  32  97 105  32  82 101  32 
100 101 103 108 105  32  69 108 102 105  32 115 111 116 116 111  32 
105 108  32  99 105 101 108 111  32  99 104 101  32 114 105 115 112 
108 101 110 100 101  44  10  83 101 116 116 101  32  97 105  32  80 
114 105 110  99 105 112 105  32 100 101 105  32  78  97 110 105  32 
110 101 108 108 101  32 108 111 114  32 114 111  99  99 104 101  32 
100 105  32 112 105 101 116 114  97  44  10  78 111 118 101  32  97 
103 108 105  32  85 111 109 105 110 105  32  77 111 114 116  97 108 
105  32  99 104 101  32 108  97  32 116 114 105 115 116 101  32 109 
111 114 116 101  32  97 116 116 101 110 100 101  44  10  85 110 111 
 32 112 101 114  32 108  39  79 115  99 117 114 111  32  83 105 114 
101  32  99 104 105 117 115 111  32 110 101 108 108  97  32 114 101 
103 103 105  97  32 116 101 116 114  97  10  78 101 108 108  97  32 
 84 101 114 114  97  32 100 105  32  77 111 114 100 111 114  44  32 
100 111 118 101  32 108  39  79 109  98 114  97  32 110 101 114  97 
 32 115  99 101 110 100 101  46  10  85 110  32  65 110 101 108 108 
111  32 112 101 114  32 100 111 109  97 114 108 105  44  32  85 110 
 32  65 110 101 108 108 111  32 112 101 114  32 116 114 111 118  97 
114 108 105  44  10  85 110  32  65 110 101 108 108 111  32 112 101 
114  32 103 104 101 114 109 105 114 108 105  32 101  32 110 101 108 
 32  98 117 105 111  32 105 110  99  97 116 101 110  97 114 108 105 
 44  10  78 101 108 108  97  32  84 101 114 114  97  32 100 105  32 
 77 111 114 100 111 114  44  32 100 111 118 101  32 108  39  79 109 
 98 114  97  32  99 117 112  97  32 115  99 101 110 100 101  46  32 
 32  32  10 
-- 
http://www.fantoibed.da.ru
 |   linux  | 
http://www.spippolatori.com
 UIN:62959208              | addicted | email:  
fant...@libero.it
 UIN:62959208              | addicted | email:  
fant...@libero.it

 
Ciao,
<ot>
Posso aggiungere due precisazioni...
dunque, il codice ASCII (American Standard Code for Information 
Interchange) è un codice che va da 000 a 255, di cui i primi 2^7=128 codici 
li definiamo come quelli base, mentre se consideriamo un altro bit, quindi 
2^8=255, così si ottiene il cd. ASCII esteso, che amplia la base.
Quindi si può capire che i primi 128 simboli (da 000 a 127), sono formati 
forzando un bit a zero (il primo partendo da sinistra), mentre gli altri 
sono formati lasciando libero il bit forzato a zero.
Poi, per quanto riguarda il programma in C, io ti posso regalare la tabella 
ASCII, così, se magari vuoi qualche carattere paricolare non hai grossi 
problemi :)
#include <stdio.h>
void main()
{
int i;
for(i=0;i!=256;i++)
        printf("%d\t%c\n",i,i);
}
//della serie: "O Marco, mica siamo scemi..."
L'ho fatto perché in questo modo ti puoi ricavare e stampare una tabella 
ASCII se già non la hai...(ci sono tutti i simboli che occorrono, tranne i 
bip e altre cosucce).
programma >> /file.testo
stampa il file.testo
Così non ti complichi la vita.
//p.s. e chi si ricorda il comando che lancia direttamente la stampa?!//
raga, l'ottilometro ha segnato valori > di 0.5! :)
<ot>
Marco Spiga
-- 
Cerchi la soluzione ai tuoi problemi?
Prima di postare, fatti aiutare:
http://groups.google.it

 "traduttore ascii"?
ASCII è uno standard per la codifica elettronica del testo in inglese. 
Ad ogni carattere dell'alfabeto e segno di punteggiatura è associato un 
numero da 0 a 127. Lo 0 è riservato come valore di "fine stringa", i 
caratteri dall'1 al 31 sono caratteri detti "di controllo", cioè che i 
terminali interpretano come comandi anzichè testo, dal 32 al 47 abbiamo 
i segni di punteggiatura, dal 48 al 57 le cifre numeriche, dal 58 al 64 
altra punteggiatura, dal 65 al 90 le lettere dell'alfabeto maiuscole, 
altra punteggiatura dal 91 al 96, dal 97 al 122 le lettere minuscole, e 
ancora punteggiatura dal 123 al 126. Infine il 127 che, se ben ricordo, 
non è usato per nessuno scopo
Però siamo OT :-)
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.20. C, C++ and ASM developers
                              and beta testers are welcome!

 non è usato per nessuno scopo
E' di controllo anche lui, DEL sui terminali (almeno alcuni) e anche
sulle stampanti a matrice ("rubout", cancella carattere precedente).
Bye, G.