CODICI E CODIFICA/DECODIFICA
-----------------------------------------------------
@gronag grazie mille per la risposta.
ho una domanda che mi sorge ora anche se off topic ma credo non valga la pena creare una nuova discussione in quanto mi basterebbe anche una risposta " semplice" .
Essendo in questo periodo vicino alla programmazione machine-oriented mi sorge un altro dubbio/ curiosità.
dov'è memorizzato il codice ASCII nella macchina ? o meglio a grandi linee come avviene la conversione? è tutto nella ROM ?è gestita dal OS?
p.s non voglio sembrare uno con domande superficiali ma sembra che mi frullino sempre domande ostiche.. sul web non ho trovato una risposta a questa domanda.. e neanche nei miei libri di testo da Superiori.. :(
Guarda, caro
@rob25111,
lo studio dei codici, della codifica e della decodifica delle informazioni è un classico problema di Cibernetica che è stato approfondito da autori quali Shannon e Hamming, in riferimento soprattutto alla trasmissione di tali informazioni.
Per il funzionamento di un sistema digitale è necessario che le informazioni del mondo esterno vengano codificate in parole binarie dal sistema, il quale, dopo l'elaborazione, le pone in uscita in una forma comprensibile.
Ora ho poco tempo, nel pomeriggio approfondiremo questi concetti :sisi:
A dopo ;)
--- i due messaggi sono stati uniti ---
Eccomi qua,
come sai, un codice è formato da una serie di simboli (pensa alle lettere dell'alfabeto) e dalle loro combinazioni valide (pensa al vocabolario di una lingua).
Ora, tutti i codici in un computer utilizzano come alfabeto le cifre binarie 0 e 1 :asd:
Un codice può essere utilizzato in seguito ad un processo di codifica.
In che modo ?
Mettendo semplicemente in corrispondenza ciascun simbolo di un codice con una parola di un altro codice; ad esempio, il codice ASCII associa a ogni carattere alfanumerico una combinazione di 7 bit, oppure nel caso di un codice BCD ad ogni cifra decimale è associata una combinazione di 4 bit (ovviamente delle 16 combinazioni ne vengono utilizzate 10, le 6 rimanenti possono essere usate per altre codifiche o per la rilevazione e la correzione degli errori).
Lo standard ISO 646 utilizza la codifica US ASCII (ASCII americano) a 7 bit per rappresentare 128 caratteri.
E` possibile estendere il codice ASCII utilizzando 8 bit (256 caratteri diversi), secondo lo standard ISO 8859, per il supporto di altre lingue che usano alfabeti diversi (cirillico, arabo, ecc.).
Anche in questo modo, però, vengono trascurati gli ideogrammi delle lingue orientali e altri particolari simboli, per questo motivo è stato istituito lo standard Unicode a 16 bit (65536 caratteri), usato da Windows per memorizzare i nomi dei file e da Java per la codifica dei caratteri.
In seguito è stato definito lo standard UCS-4 (la codifica Unicode è UCS-2 a 2 byte) a 4 byte (in realtà si usano 31 bit, il primo bit è sempre 0, e quindi più di 2 miliardi di caratteri).
Tutti questi codici non sono perfettamente compatibili col codice ASCII poiché hanno un numero diverso di bit.
La codifica UTS è un tipo di codifica Unicode e UCS-4 (standard ISO 10646) che risulta perfettamente compatibile col codice ASCII in quanto il numero di byte è variabile da 1 a 6 per ogni carattere ma l'ordinamento viene mantenuto.
Nel codice UTF-8 viene utilizzato 1 byte per codificare i 127 caratteri dell'ASCII "ridotto" e tutti gli altri caratteri sono codificati secondo una logica multi-byte (da 2 a 6 byte), non c'è possibilità di confusione.
Venendo alla tua domanda, esistono specifici "chip" elettronici integrati, chiamati Encoder (codificatori), in grado di convertire alcune variabili in ingresso in un codice risultante generato in uscita:
http://www.elemania.altervista.org/digitale/combinatorio/comb2.html :sisi:
Il processo inverso, quello di decodifica, viene attuato tramite circuiti "decoder" (decodificatori):
corso di elettronica e circuiti
www.elemania.altervista.org
Di solito i decoder (che consentono il passaggio tra i vari codici) vengono usati per "pilotare" dispositivi optoelettronici come display a LED o a cristalli liquidi LCD (al fine di visualizzare informazioni sotto forma di caratteri alfanumerici).
A presto ;)