Il mondo moderno è costruito sull'uso e trasmissione di informazioni. Ma non puoi dirle a tutti con la tua voce. Pertanto, per molto tempo, il momento della codifica dei dati è stato importante in modo che potessero essere letti da coloro per i quali era previsto. Gradualmente, anche la crittografia è diventata rilevante. Era necessario inserire nel messaggio informazioni che erano chiare per lei e non rivelare il significato agli altri. Parleremo di tutto questo, scoprendo cosa sono la codifica e la decodifica.
Senza questo in alcun modo. Quando parlano del testo codificato, significa che è stato associato a un diverso set di caratteri. Questo può essere utilizzato per aumentare l'affidabilità o per il semplice motivo che un canale può utilizzare solo un numero limitato di caratteri. Ad esempio, il codice binario su cui operano i computer moderni è costruito su zeri e uno.
Le informazioni possono essere codificate in determinati caratteri e per salvarli. Ad esempio, possiamo citare i risultati di analisi, che contengono indicatori del corpo umano. Ma la domanda più popolare è: "Cos'è la codifica e decodifica nell'informatica?" Cercheremo la risposta ad esso.
In precedenza, il processo di codifica e decodifica delle informazioni ha svolto un ruolo di supporto e non è stato considerato come un'area separata della matematica. Ma con l'avvento dei computer elettronici, la situazione è cambiata in modo significativo. Ora la codifica è un problema centrale nella risoluzione di una vasta gamma di problemi pratici nella programmazione e quindi permea tutte le tecnologie dell'informazione. Quindi, con il suo aiuto:
Parlando di ciò che codifica e decodifica sono, è difficile trascurare la base di tutto ciò. Vale a dire, l'alfabeto. Ci sono due tipi: sorgente e codice. Nel primo c'è un'informazione iniziale. Per codice si intendono i dati modificati, che tuttavia, se è presente una chiave, possono trasmettere a noi il contenuto crittografato. In informatica, questo utilizza un codice binario basato su un alfabeto composto da zero e uno.
Diamo un'occhiata ad un piccolo esempio. Supponiamo di avere due alfabeti (A e B), che consistono in un numero finito di caratteri. Supponiamo che assomigliano a questo: A = {A0, A1, A2 ... .A33}, B = {B0, B1, B3 ... B34}. Gli elementi dell'alfabeto sono lettere. Mentre il loro set ordinato è chiamato una parola. Ha una certa lunghezza. La prima lettera di una parola è chiamata l'inizio (prefisso), mentre l'ultima lettera è chiamata la fine (postfix). Ci possono essere regole diverse per la costruzione di strutture. Ad esempio, alcuni sistemi informazioni sulla codifica richiedono che ci sia un divario tra le parole, le seconde ne fanno a meno. In generale, l'alfabeto è necessario per costruire un sistema universale per la visualizzazione delle informazioni, la loro memorizzazione, elaborazione e trasmissione. In questo caso, viene fornita una certa corrispondenza tra i vari segnali e gli elementi del messaggio che sono crittografati in essi.
Quando l'informazione viene convertita nella sua forma originale, il processo che ha luogo è chiamato decodifica. Deve essere eseguito in relazione a tutti i dati che sono stati crittografati. In questo caso, viene utilizzata la cosiddetta mappatura inversa (biiezione). Diamo un'occhiata alla situazione del sistema binario. Ha tutte le parole in codice della stessa lunghezza. Pertanto, il codice è chiamato uniforme (blocco). In questo caso, la funzione di codifica è una certa sostituzione. Prendi come esempio il sistema alfabetico sopra. Per denotare determinate sequenze usando un insieme di codici elementari.
Supponiamo di avere A0 = {A, B, C, D} e B0 = {1, 0}. Come può essere presentato a un computer? E usando la seguente sequenza: A = 00, B = 01, B = 10, D = 11. Come puoi vedere, ogni personaggio ha codifica specifica. Le informazioni di riferimento sull'alfabeto di codifica sono inserite nell'attrezzatura del computer e iniziano ad attendere i segnali in arrivo. Zero arriva, seguito da un altro - sì, così è una lettera R. Se tracciamo paralleli con la digitazione di una parola in un editor di testo, allora si dovrebbe notare che non verrà trasmessa solo una lettera, ma verrà lanciata la reazione corrispondente ad essa. Ad esempio, una certa sequenza di LED del monitor si accenderà, dove vengono visualizzati tutti i caratteri immessi.
Parlando di esempi di informazioni di codifica e decodifica, si dovrebbe notare che il sistema in esame non è uno a uno. Ad esempio, la lettera A può corrispondere a una combinazione di non solo 00, ma anche 11, 10 o 01. Ma si dovrebbe tenere presente che può esserci solo una cosa. Cioè, solo un carattere specifico è assegnato a una combinazione esclusivamente. Se lo schema di codifica implica la divisione di qualsiasi parola in componenti elementari, allora è chiamato separabile. Nei casi in cui una lettera non agisce come l'inizio di un'altra, questo è l'approccio prefisso. Questo si riferisce a problemi di software e hardware. L'architettura ha anche una certa influenza sulla programmazione, ma a causa dell'elevato numero di opzioni di implementazione, è piuttosto problematico considerarla.
Questo è l'approccio più semplice. Se parliamo della codifica delle informazioni, forse questa è l'opzione più popolare. In una versione limitata, è stato considerato sopra. Scopriamo come appare il codice senza delimitatori. Supponiamo di avere un alfabeto (fonte) in cui sono collocate tutte le lettere russe. Le cifre decimali vengono utilizzate per la codifica. Qui A = 1 e I = 33. Pertanto, la sequenza di lettere AJAA può essere indicata come 133331. Se c'è il desiderio di rendere l'alfabeto uniforme, allora è necessario apportare alcune modifiche. Quindi, per le prime nove lettere devi aggiungere zero. E l'esempio di AJAA da noi considerato si trasforma in 01333301.
L'opzione considerata prima è considerata conveniente. Ma in certi casi è più intelligente scommettere su codici non uniformi. Ciò ha senso quando lettere diverse nel testo sorgente si presentano a frequenze diverse. Pertanto, ha senso codificare personaggi più frequenti con simboli brevi e simboli rari con simboli lunghi. Costruiamo un albero binario delle lettere dell'alfabeto russo. Inoltre, prenderemo caratteri speciali. Le lettere utilizzate più frequentemente sono, quindi inizieremo con esse: A - 0, B - 1, C - 10, G - 11 e così via. E solo dopo di loro verranno utilizzati punti interrogativi, percentuali, due punti e altro. Anche se, forse, le virgole e i periodi dovrebbero ancora essere messi in primo piano.
Il teorema dice che qualsiasi codice (prefisso e uniforme) ammette la possibilità di codifica univoca. Supponiamo di utilizzare l'esempio considerato in precedenza con 01333301. Iniziamo a spostarci a destra. 0 non ci dà nulla Ma 01 ti permette di identificare la lettera A. Un po 'cambia il codice iniziale e lo presenta come 01 333301. Successivamente, seleziona il primo I, il secondo e un altro A. Come risultato, abbiamo 01 33 33 01. Sebbene il codice sia stato originariamente unito, ma ora possiamo facilità di decodifica, perché sappiamo di cosa si tratta. Vale a dire - I AM A. Allo stesso tempo, si noti che è sempre decodificato in modo inequivocabile, e non ci sono interpretazioni all'interno del framework del sistema adottato, grazie al quale è possibile garantire un'elevata affidabilità delle informazioni trasmesse. Ma come funzionano i computer?
La codifica e la decodifica dei segnali della tecnologia informatica si basa sull'uso dei cosiddetti segnali bassi e alti, che corrispondono a zero e uno nella dimensione logica. Cosa significa? Diciamo che abbiamo un microcontrollore. Se uno dei suoi ingressi riceve una bassa tensione di 1,5 V, allora si considera che il valore di uno zero logico è stato trasmesso. Ma se 5 V viene trasmesso, allora un'unità verrà scritta nella corrispondente cella di memoria. Allo stesso tempo è necessario raggiungere un accordo sulla fonte delle informazioni con canale di comunicazione. In generale, quando si crea l'elettronica è necessario prendere in considerazione un gran numero di punti diversi. Questi sono i requisiti energetici, il tipo di informazioni trasmesse (discrete o continue) e molto altro. Allo stesso tempo, i dati devono essere costantemente trasformati in modo che possano essere trasmessi attraverso i canali di comunicazione. Quindi, nel caso della tecnologia binaria, i segnali sono rappresentati come tensione fornita all'ingresso di transistor o altri componenti. Durante la decodifica, i dati traducono il messaggio in un modo comprensibile per il destinatario.
In pratica, è emerso che è estremamente importante che il codice del messaggio abbia una lunghezza minima. Inizialmente può sembrare che differenza: sei, otto o sedici bit vengono usati per la codifica? Ma le differenze non sono significative se si usa una parola. E se miliardi? Fortunatamente, puoi modificare la codifica alfabetica per tutti i requisiti. Ma se non si sa nulla del set, allora in questo caso è piuttosto difficile formulare un problema di ottimizzazione. Ma in pratica, di norma, puoi comunque ottenere ulteriori informazioni. Considera un piccolo esempio. Supponiamo di avere un messaggio inviato in un linguaggio naturale. Ma è codificato e non possiamo leggerlo. Cosa ci aiuterà nel compito di decodificare? Come una delle possibili opzioni - un pezzo di carta su cui è distribuita la probabilità di occorrenza di lettere. A causa di ciò, la costruzione del codice ottimale in termini di de / codifica diventa possibile con l'uso di una formulazione matematica esatta e una soluzione rigorosa.
Supponiamo di disporre di uno schema di codifica alfabetico separabile definibile. Quindi tutte le derivate, che sono un insieme ordinato, avranno anche questa proprietà. Inoltre, se la lunghezza dei codici elementari è uguale, la loro permutazione non influisce sulla lunghezza dell'intero messaggio. Ma se la dimensione delle informazioni trasmesse dipende direttamente dalla sequenza di lettere, significa che sono stati utilizzati componenti di diversa lunghezza. Allo stesso tempo, se c'è un messaggio specifico e il suo schema di codifica, allora è possibile scegliere una tale soluzione del problema quando la sua lunghezza è minima. Come ottenere questo? Diamo un'occhiata all'approccio utilizzando l'algoritmo per l'assegnazione di codici elementari, che ci consente di affrontare in modo efficace la soluzione del problema di efficienza:
In generale, il sistema è semplice. Se lavori con piccole quantità di dati. Ma con i computer moderni questo è abbastanza problematico da implementare a causa della notevole quantità di informazioni.
Quindi abbiamo esaminato cos'è un sistema di codifica e decodifica, cosa potrebbe essere, ciò che ora esiste nell'informatica e molti altri problemi. Ma dovrebbe essere chiaro che questo argomento è estremamente voluminoso, un articolo non è abbastanza per questo. Come continuazione dell'argomento, possiamo considerare la crittografia dei dati, la crittografia, un cambiamento nella visualizzazione delle informazioni in vari dispositivi elettronici, i livelli di elaborazione e molti altri punti. Ma il ramo dell'informatica è considerato uno dei più difficili, quindi, studiare tutto questo rapidamente non funzionerà. Oltre alla conoscenza teorica qui oh come non è uguale alle abilità pratiche. Vale a dire, questi ultimi forniscono un risultato qualitativo.