Codificare caractere

Codificare caractere

Acasă | Despre noi | feedback-ul

Pe baza capacității de informare a unei celule de 1 bit poate codifica numai două stări distincte. Pentru fiecare caracter, care pot fi introduse de la tastatură în registrul latină. a primit un cod binar unic necesită 7 biți. Pe baza secvenței de 7 biți, în conformitate cu formula Hartley, se pot obține prin N = 7 februarie = 128 combinații diferite de zero-uri și altele, adică coduri binare. Atribuirea fiecărui caracter de cod binar, obținem un tabel de codificare. Omul operează caractere, calculatorul - codurile lor binare.

Pentru Latină aspect de tastatură un astfel de tabel de codificare este unul pentru întreaga lume, astfel încât textul tastat cu aspect latin, va fi afișată în mod corespunzător pe orice computer. Acest tabel este numele ASCII (American Standard Code de informații), în limba engleză este pronunțat [Eski] în limba rusă este pronunțat [Asuka]. Mai jos este întregul tabel ASCII în care codurile sunt date în formă zecimală. Pe aceasta poate fi determinat că atunci când introduceți de la tastatură, de exemplu, simbolul „*“, percepe ca un cod de calculator 42 (10). la rândul său, 42 (10) = 101010 (2) - Acesta este codul binar al caracterului "*". Codurile de 0-31 din acest tabel nu sunt utilizate.

Tabel de caractere ASCII

Pentru a stoca codurile și, de asemenea, caracterul național al fiecărei țări (în cazul nostru - caracterele chirilice) pe care doriți să adăugați încă 1 bit, ceea ce va crește numărul de combinații unice de zero-uri și cele de două ori, și anume la dispoziția noastră va fi o suplimentare de 128 de coduri gratuite (de la 128 mii la 255 mii), în conformitate cu care este posibil să se pună simbolurile alfabetului românesc.

Astfel, rezervată pentru stocarea informațiilor referitoare la fiecare cod de caractere de 8 biți, obținem N = 2 8 = 256 coduri binare unice, ceea ce este suficient pentru a codifica toate caracterele care pot fi introduse de la tastatura.

Acest lucru ne aduce la necesitatea de a face cunoștință cu o altă unitate de măsură de bază - octet.

Byte - o secvență de 8 biți.

1 byte = Martie 2 biți = 8 biți.

Bazat pe un singur octet poate fi obținută luna august 2 = 256 coduri binare unice.

În tabelele de codificare moderne pentru stocarea de informații despre codul fiecărui caracter este dat 1 octet.

1 caracter = 1 octet.

Cantitatea măsurată de octeți de date (V) în timpul stocării și transmisiei prin canale de comunicare. De exemplu, textul „Salut!“ Este o sumă egală cu 12 octeți.

Biții dintr-un octet sunt numerotate de la capătul cu 0-lea până la al 7-lea. combinație minimă pe baza unui singur octet - opt la zero, maxim - opt unități. Fig. 18a.

11111111 (2) = 7 +2 6 2 +2 5 +2 4 +2 3 +2 2 +2 1 +2 0 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 (10)

Când sunt depozitate la nivelul fizic, fiecare octet poate fi implementată, de exemplu, pe baza celor opt condensatori, fiecare dintre care este fie evacuate (0) sau încărcate (1). Fig. 18b.

Fig. 18a. Bytes: minimă și maximă combinație

Fig. 18b. Byte: potrivire numărul binar și pulsul electric.

Revenind la a tabelului de cod, observăm că până în prezent în utilizarea nu una, ci mai multe tabele de codificare, inclusiv coduri chirilice - acestea sunt standardele elaborate în diferite momente și de către diferite agenții. Aceste tabele sunt diferite ordine în care sunt dispuse unul în spatele celelalte personaje ale alfabetului chirilic, astfel încât același cod corespunde cu caractere diferite. Din acest motiv, ne confruntăm uneori cu texte care constau din litere românești, dar într-o secvență de sens pentru noi.

De exemplu, textul „Virușii“, a introdus în Windows-1251 în KOI-8 va fi afișată după cum urmează: „lPNRShAFETOShE CHYTHUSCH“.

coduri de caractere incoerență codificări diferite chirilice.

Această problemă poate fi rezolvată - pe fiecare calculator sunt toate principalele tabelul de codificare, iar în cazul în care testul este inadecvat pentru a încerca să-l recoda, pur și simplu prin specificarea unui tabel de codificare pentru a utiliza un alt. Dar existența acestei probleme, desigur, aduce inconveniente.

Folosind un 8-biți, nu putem vedea un tabel de codificare pentru a monitoriza și texte create în limbi care utilizează, altele decât cele latine și chirilice de caractere, de exemplu, caracterele cu diacritice în limba germană în mod adecvat.

Teoretic, există o lungă perioadă de timp pentru a rezolva aceste probleme. Este numit Unicode (Unicode). Unicode - aceasta este o tabelă de codificare, care utilizează 2 octeți pentru a codifica fiecare caracter, adică, 16 biți. Bazat pe un astfel de tabel poate fi codificat N = 16 februarie = 65536 simboluri.

Unicode include aproape toate literatura modernă, inclusiv: arabă, armeană, bengali, birmaneză, greacă, georgiană, Devanagari, ebraică, chirilică, coptă, khmeră, Latină, Tamil, Hangul, Han (China, Japonia, Coreea), Cherokee, etiopian, japoneză (Katakana, hiragana, kanji), și altele.

În Unicode, o gamă largă de simboluri și pictograme matematice și muzicale.

Pentru caractere chirilice în intervalul Unicode a două coduri alocate:

Chirilic (# 0400 - # 04FF)

Supliment chirilic (# 0500 - # 052F).

Dar introducerea tabelului Unicode în forma sa cea mai pură este constrânsă, pentru motivul că în cazul în care codul de un caracter se va ocupa mai mult de un octet și doi octeți, care pentru a stoca textul va avea nevoie de două ori mai mult spațiu pe disc, precum și pentru transmisia prin intermediul canalelor de comunicare - de două ori mai mult timp.

Deci, acum practica este o reprezentare mai frecventă a Unicode UTF-8 (Unicode Transformation Format). UTF-8 oferă cea mai bună compatibilitate cu sisteme care utilizează caractere pe 8 biți. Textul format din numai simboluri cu numărul mai mic de 128 este convertit într-un text ASCII obișnuit atunci când scrieți în UTF-8. Caracterele Unicode rămase sunt reprezentate de secvențe de lungime de la 2 la 4 octeți. În general, cea mai frecventă în lumea simbolurilor - simboluri ale alfabetului latin - ocupă încă 1 octet de codificare este mai economic decât Unicode pur UTF-8.

1. În textul în limba engleză, codificat folosind doar 26 de litere ale alfabetului și 6 semne de punctuație. În acest caz, textul care conține 1000 de caractere poate fi garantată de compresie fără pierderi la o dimensiune de:

2. Dicționar Ellochka - „canibal“ (caracterul romanului „Cei Doisprezece Scaunele“) este de 30 de cuvinte. Cât de mulți biți sunt suficiente pentru a codifica toate vocabularul Ellochka? Variante 8, 5, 3, 1.

4.4. Unitățile mărimea capacității de date și memorie: kilobytes, megaocteți, gigaocteți ...

Deci, am constatat că, în cele mai moderne de codificare pentru stocarea pe suport electronic un caracter al textului dat 1 octet. Ie măsurată în volum bytes (V), datele sale în timpul depozitării și transportului (în fișiere, mesaje).

Datele de volum (V) - numărul de octeți necesari pentru a le stoca în memoria suportului electronic de date.

Purtătorii de memorie, la rândul său, are o capacitate limitată. și anume capacitatea de a menține o anumită sumă. Capacitatea de memorie de mass-media electronice, desigur, este, de asemenea, măsurată în octeți.

Cu toate acestea, octet - unitate de volum mic de date este mai mare kilobytes, megaocteți, gigaocteți, terabytes ...

Este necesar să ne amintim că prefixul „kilogram“, „mega“, „GIGA“ ... nu sunt în acest caz, zecimal. Deci, „kilogram“ în „kilobytes“ nu înseamnă „o mie“, adică Aceasta nu înseamnă „10 martie“. Bit - unul binar, și din acest motiv, computerul ușor de utilizat multipli de unități de măsură „2“, în loc de numărul „10“.

1 octet = 2 3 = 8 biți, 1 kilobyte = 2 10 = 1024 octeți. Binar 1 kilooctet = 10000000000 bytes.

Ie „Kilo“ așa cum este utilizat aici semnifică cel mai apropiat de o mie numărul care, cu o putere de 2, și anume care este numărul de „rotund“, în sistem binar.

1 099 511 627 776 b

În acest sens, faptul că volumul de unități de suporturi de date de măsurare și de capacitate sunt multipli de 2 și multipli de 10, cele mai multe sarcini pe această temă mai ușor de rezolvat, atunci când acestea apar în valoarea reprezintă gradul de 2. Aici este un exemplu de o astfel de problemă și soluția sa:

Fișierul text este stocat într-un text de 400 de pagini. Fiecare pagină conține 3200 de caractere. Dacă utilizați codare KOI-8 (8 biți per caracter), dimensiunea fișierului este:

1) Se determină numărul total de caractere într-un fișier text. În același timp, vom introduce multipli de puteri de 2 sub forma unei puteri de 2, și anume, în loc de 4, scrie 2 2 etc. Pentru a determina gradul de Tabelul 7 pot fi utilizate.

2) Conform condiției sarcină 1 simbol este de 8 biți, adică, 1 octet => fișier ocupă iulie 2 * 10000 octeți.

3) 1 kilobyte = 2 10 octeți => dimensiunea fișierului în kiloocteți, este egal cu:

1. Cât de mulți biți într-o kilobyte?

2. Ce este 1 MB?

4. Volumul de fișier text 640 Kb. Acest fișier conține cartea, care a marcat o medie de 32 de linii pe pagină și 64 de caractere pe linie. Câte pagini se află în carte: 160, 320, 540, 640, 1280?

5. angajați pentru dosar dețin 8 Mb. Fiecare dintre ele conține 16 pagini (32 linii de 64 caractere pe linie). Câți angajați: 256; 512; 1024; 2048?

articole similare