Kurai rakstzīmei ir kods 100. ASCII kodējums (Amerikas standarta kods informācijas apmaiņai) - pamata teksta kodējums latīņu alfabētam
Kā zināms, dators informāciju glabā binārā formā, attēlojot to kā vieninieku un nulles secību. Lai informāciju pārvērstu cilvēka uztverei ērtā formā, katra unikālā skaitļu secība tiek parādīta ar tai atbilstošo simbolu.
Viena no sistēmām bināro kodu korelēšanai ar drukātajām un kontroles rakstzīmēm ir
Pašreizējā datortehnoloģiju attīstības līmenī lietotājam nav jāzina katras konkrētās rakstzīmes kods. Tomēr vispārēja izpratne par to, kā tiek veikta kodēšana, ir ārkārtīgi noderīga un dažām speciālistu kategorijām pat nepieciešama.
ASCII izveide
Kodējums sākotnēji tika izstrādāts 1963. gadā un pēc tam atjaunināts divas reizes 25 gadu laikā.
Sākotnējā versijā ASCII rakstzīmju tabula ietvēra 128 rakstzīmes, vēlāk parādījās paplašināta versija, kurā tika saglabātas pirmās 128 rakstzīmes, un kodiem ar astoto bitu tika piešķirtas iepriekš trūkstošās rakstzīmes.
Daudzus gadus šis kodējums bija vispopulārākais pasaulē. 2006. gadā vadošo pozīciju ieņēma Latin 1252, un no 2007. gada beigām līdz mūsdienām Unicode ir stingri noturējis vadošo pozīciju.
ASCII attēlojums datorā
Katrai ASCII rakstzīmei ir savs kods, kas sastāv no 8 rakstzīmēm, kas apzīmē nulli vai vienu. Minimālais skaitlis šajā attēlojumā ir nulle (binārajā sistēmā astoņas nulles), kas ir tabulas pirmā elementa kods.
Divi kodi tabulā tika rezervēti, lai pārslēgtos starp standarta US-ASCII un tā nacionālo variantu.
Pēc tam, kad ASCII sāka ietvert nevis 128, bet 256 rakstzīmes, plaši izplatījās kodēšanas variants, kurā tabulas sākotnējā versija tika saglabāta pirmajos 128 kodos ar 8. bitu nulli. Tautas rakstzīmes tika saglabātas tabulas augšējā daļā (128.-255. pozīcija).
Lietotājam nav tieši jāzina ASCII rakstzīmju kodi. Programmatūras izstrādātājam parasti ir jāzina tikai elementa numurs tabulā, lai vajadzības gadījumā aprēķinātu tā kodu, izmantojot bināro sistēmu.
krievu valoda
Pēc kodējumu izstrādes skandināvu valodām, ķīniešu, korejiešu, grieķu uc 70. gadu sākumā Padomju Savienība sāka veidot savu versiju. Drīzumā tika izstrādāta 8 bitu kodējuma versija ar nosaukumu KOI8, saglabājot pirmos 128 ASCII rakstzīmju kodus un piešķirot tādu pašu vietu skaitu nacionālā alfabēta burtiem un papildu rakstzīmēm.
Pirms Unicode ieviešanas KOI8 dominēja Krievijas interneta segmentā. Bija kodēšanas iespējas gan krievu, gan ukraiņu alfabētam.
ASCII problēmas
Tā kā elementu skaits pat paplašinātajā tabulā nepārsniedza 256, nebija iespējas vienā kodējumā ievietot vairākus dažādus skriptus. Deviņdesmitajos gados Runet parādījās “crocozyabr” problēma, kad teksti, kas tika rakstīti krievu ASCII rakstzīmēs, tika parādīti nepareizi.
Problēma bija tā, ka dažādie ASCII kodi nesakrita. Atcerēsimies, ka 128.-255. pozīcijās varēja atrasties dažādas rakstzīmes, un, mainot vienu kirilicas kodējumu pret citu, visi teksta burti tika aizstāti ar citiem, kuriem ir identisks numurs citā kodējuma versijā.
Pašreizējais stāvoklis
Līdz ar Unicode parādīšanos ASCII popularitāte sāka strauji kristies.
Iemesls tam ir fakts, ka jaunais kodējums ļāva uzņemt rakstzīmes no gandrīz visām rakstītajām valodām. Šajā gadījumā pirmās 128 ASCII rakstzīmes atbilst tām pašām Unicode rakstzīmēm.
2000. gadā ASCII bija vispopulārākais kodējums internetā, un to izmantoja 60% Google indeksēto tīmekļa lapu. Līdz 2012. gadam šādu lapu īpatsvars bija samazinājies līdz 17%, un populārākā kodējuma vietu ieņēma Unicode (UTF-8).
Tādējādi ASCII ir svarīga informācijas tehnoloģiju vēstures sastāvdaļa, taču tā izmantošana nākotnē šķiet neperspektīva.
Rakstzīmju pārklājums
BS (backspace) rakstzīme ļauj printerim drukāt vienu rakstzīmi virs otras. ASCII ir paredzēts, lai burtiem pievienotu diakritikas šādā veidā, piemēram:
- a BS "→ á
- a BS ` → à
- a BS ^ → â
- o BS / → ø
- c BS , → ç
- n BS ~ → с
Piezīme: vecos fontos apostrofs " tika zīmēts slīpi pa kreisi, un tilde ~ tika pārvietota uz augšu, tāpēc tie atbilst akūts un tildes lomai augšpusē.
Ja uz rakstzīmes tiek uzklāta viena un tā pati rakstzīme, rezultāts ir treknrakstā fonta efekts, un, ja rakstzīmei tiek uzklāts pasvītrojums, rezultāts ir pasvītrots teksts.
- a BS a → a
- aBS_→ a
Piezīme: To izmanto, piemēram, vīriešu palīdzības sistēmā.
Nacionālie ASCII varianti
ISO 646 (ECMA-6) standarts paredz iespēju izvietot valsts simbolus @ [ \ ] ^ ` { | } ~ . Papildus tam uz vietas # var izlikt £ , un vietā $ - ¤ . Šī sistēma ir labi piemērota Eiropas valodām, kur nepieciešamas tikai dažas papildu rakstzīmes. ASCII versiju bez nacionālajām rakstzīmēm sauc par US-ASCII jeb "starptautisko atsauces versiju".
Pēc tam izrādījās ērtāk izmantot 8 bitu kodējumus (kodu lapas), kur kodu tabulas apakšējo pusi (0-127) aizņem US-ASCII rakstzīmes, bet augšējo pusi (128-255) ar papildu rakstzīmēm, tostarp nacionālo rakstzīmju kopu. Tādējādi ASCII tabulas augšējā puse pirms Unikoda plašās ieviešanas tika aktīvi izmantota, lai attēlotu lokalizētas rakstzīmes, vietējās valodas burtus. Vienota standarta trūkums kirilicas rakstzīmju ievietošanai ASCII tabulā radīja daudzas problēmas ar kodējumiem (KOI-8, Windows-1251 un citi). Citas valodas ar rakstiem, kas nav latīņu rakstības, arī cieta no vairāku dažādu kodējumu.
.0 | .1 | .2 | .3 | .4 | .5 | .6 | .7 | .8 | .9 | .A | .B | .C | .D | .E | .F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0. | NUL | SOM | EOA | EOM | EQT | W.R.U. | RU | ZVANS | BKSP | HT | LF | VT | FF | CR | SO | S.I. |
1. | DC 0 | DC 1 | DC 2 | DC 3 | DC 4 | ERR | SYNC | L.E.M. | S 0 | S 1 | S 2 | S 3 | S 4 | S 5 | S 6 | S 7 |
2. | ||||||||||||||||
3. | ||||||||||||||||
4. | TUKŠS | ! | " | # | $ | % | & | " | ( | ) | * | + | , | - | . | / |
5. | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
6. | ||||||||||||||||
7. | ||||||||||||||||
8. | ||||||||||||||||
9. | ||||||||||||||||
A. | @ | A | B | C | D | E | F | G | H | es | Dž | K | L | M | N | O |
B. | P | J | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ← | |
C. | ||||||||||||||||
D. | ||||||||||||||||
E. | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | |
F. | lpp | q | r | s | t | u | v | w | x | y | z | ESC | DEL |
Tajos datoros, kuros minimālā adresējamā atmiņas vienība bija 36 bitu vārds, sākotnēji tika izmantotas 6 bitu rakstzīmes (1 vārds = 6 rakstzīmes). Pēc pārejas uz ASCII šādos datoros vienā vārdā sāka būt vai nu 5 septiņu bitu rakstzīmes (1 bits palika papildus), vai 4 deviņu bitu rakstzīmes.
ASCII kodus izmanto arī, lai noteiktu, kurš taustiņš tiek nospiests programmēšanas laikā. Standarta QWERTY tastatūrai kodu tabula izskatās šādi:
Tiek izsaukta rakstzīmju kopa, ar kuru tiek rakstīts teksts alfabēts. Rakstzīmju skaits alfabētā ir tā jauda. Formula informācijas apjoma noteikšanai: N=2b, kur N ir alfabēta pakāpe (rakstzīmju skaits), b – bitu skaits (simbola informācijas svars). Alfabēts ar ietilpību 256 rakstzīmes var uzņemt gandrīz visas nepieciešamās rakstzīmes. Šo alfabētu sauc pietiekams. Jo 256 = 2 8, tad 1 rakstzīmes svars ir 8 biti. Mērvienībai 8 biti tika dots nosaukums 1 baits: 1 baits = 8 biti. Katras rakstzīmes binārais kods datora tekstā aizņem 1 baitu atmiņas. Kā teksta informācija tiek attēlota datora atmiņā?Bitu pa baitam rakstzīmju kodēšanas ērtības ir acīmredzamas, jo baits ir mazākā adresējamā atmiņas daļa, un tāpēc procesors, apstrādājot tekstu, var piekļūt katrai rakstzīmei atsevišķi. No otras puses, 256 rakstzīmes ir pietiekami daudz, lai attēlotu visdažādāko simbolisko informāciju. Tagad rodas jautājums, kuru astoņu bitu bināro kodu piešķirt katrai rakstzīmei.Ir skaidrs, ka tas ir nosacīts jautājums, jūs varat nākt klajā ar daudzām kodēšanas metodēm. Visas datora alfabēta rakstzīmes ir numurētas no 0 līdz 255. Katrs cipars atbilst astoņu bitu binārajam kodam no 00000000 līdz 11111111. Šis kods ir vienkārši rakstzīmes sērijas numurs binārajā skaitļu sistēmā. Tabulu, kurā visām datora alfabēta rakstzīmēm ir piešķirti sērijas numuri, sauc par kodēšanas tabulu.Dažādu veidu datoros tiek izmantotas dažādas kodēšanas tabulas. Tabula ir kļuvusi par starptautisku standartu personālajiem datoriem ASCII(lasīt aski) (Amerikas standarta informācijas apmaiņas kods). ASCII kodu tabula ir sadalīta divās daļās. Tikai tabulas pirmā puse ir starptautiskais standarts, t.i. simboli ar cipariem no 0 (00000000), līdz 127 (01111111). ASCII kodēšanas tabulas struktūra
ASCII kodu tabulas pirmā puseLūdzu, ņemiet vērā, ka kodēšanas tabulā burti (lielie un mazie) ir sakārtoti alfabētiskā secībā, un cipari ir sakārtoti augošā secībā. Šo leksikogrāfiskās kārtības ievērošanu simbolu izkārtojumā sauc par alfabēta secīgās kodēšanas principu. Krievu alfabēta burtiem tiek ievērots arī secīgās kodēšanas princips. ASCII kodu tabulas otrā puseDiemžēl šobrīd ir pieci dažādi kirilicas kodējumi (KOI8-R, Windows. MS-DOS, Macintosh un ISO). Šī iemesla dēļ bieži rodas problēmas ar krievu valodas teksta pārsūtīšanu no viena datora uz otru, no vienas programmatūras sistēmas uz citu. Hronoloģiski viens no pirmajiem standartiem krievu burtu kodēšanai datoros bija KOI8 ("Informācijas apmaiņas kods, 8 bitu"). Šis kodējums tika izmantots 70. gados ES datoru sērijas datoros, un no 80. gadu vidus to sāka izmantot pirmajās operētājsistēmas UNIX rusificētajās versijās. No 90. gadu sākuma, MS DOS operētājsistēmas dominēšanas laika, saglabājas CP866 kodējums ("CP" nozīmē "koda lapa", "koda lapa"). Apple datori, kuros darbojas operētājsistēma Mac OS, izmanto savu Mac kodējumu. Turklāt Starptautiskā standartu organizācija (ISO) ir apstiprinājusi citu kodējumu ar nosaukumu ISO 8859-5 kā krievu valodas standartu. Pašlaik visbiežāk izmantotais kodējums ir Microsoft Windows, saīsināts CP1251. Kopš 90. gadu beigām rakstzīmju kodēšanas standartizācijas problēma ir atrisināta, ieviešot jaunu starptautisku standartu ar nosaukumu. Unicode. Šis ir 16 bitu kodējums, t.i. tas katrai rakstzīmei piešķir 2 baitus atmiņas. Protams, tas palielina aizņemtās atmiņas apjomu 2 reizes. Bet šāda kodu tabula ļauj iekļaut līdz 65536 rakstzīmēm. Pilnīgā Unicode standarta specifikācijā ir iekļauti visi pasaulē esošie, izmirušie un mākslīgi izveidotie alfabēti, kā arī daudzi matemātiskie, muzikālie, ķīmiskie un citi simboli. Mēģināsim izmantot ASCII tabulu, lai iedomāties, kā vārdi izskatīsies datora atmiņā.Vārdu iekšējais attēlojums datora atmiņāDažreiz gadās, ka tekstu, kas sastāv no krievu alfabēta burtiem, kas saņemts no cita datora, nevar nolasīt - monitora ekrānā ir redzama sava veida “abrakadabra”. Tas notiek tāpēc, ka datori izmanto dažādus krievu valodas rakstzīmju kodējumus. Katram datoram ir savs rakstzīmju kopums, ko tas ievieš. Šajā komplektā ir 26 lielie un mazie burti, cipari un speciālās rakstzīmes (punkts, atstarpe utt.). Ja simbolus pārvērš veselos skaitļos, tos sauc par kodiem. Standarti tika izstrādāti, lai datoriem būtu vienādi kodu komplekti. ASCII standartsASCII (American Standard Code for Information Interchange) ir amerikāņu standarta kods informācijas apmaiņai. Katrai ASCII rakstzīmei ir 7 biti, tāpēc maksimālais rakstzīmju skaits ir 128 (1. tabula). Kodi no 0 līdz 1F ir kontroles rakstzīmes, kas netiek drukātas. Datu pārsūtīšanai ir nepieciešamas daudzas nedrukājamas ASCII rakstzīmes. Piemēram, ziņojums var sastāvēt no galvenes sākuma rakstzīmes SOH, pašas galvenes un teksta sākuma rakstzīmes STX, paša teksta un teksta beigu rakstzīmes ETX, kā arī nosūtīšanas beigu rakstzīmes. raksturs EOT. Tomēr dati tīklā tiek pārsūtīti paketēs, kuras pašas ir atbildīgas par pārraides sākumu un beigām. Tātad nedrukājamas rakstzīmes gandrīz nekad netiek izmantotas. 1. tabula — ASCII kodu tabula
Unikoda standartsIepriekšējais kodējums ir piemērots angļu valodai, taču tas nav ērts citām valodām. Piemēram, vācu valodā ir umlauts, bet franču valodā ir augšraksti. Dažām valodām ir pilnīgi atšķirīgi alfabēti. Pirmais mēģinājums paplašināt ASCII bija IS646, kas pagarināja iepriekšējo kodējumu par papildu 128 rakstzīmēm. Tika pievienoti latīņu burti ar triepieniem un diakritiskajām zīmēm, un tika iegūts nosaukums - latīņu 1. Nākamais mēģinājums bija IS 8859 - kurā bija koda lapa. Bija arī mēģinājumi pagarināt, taču tas nebija universāls. Tika izveidots UNICODE kodējums (ir 10646). Kodēšanas ideja ir piešķirt katrai rakstzīmei vienu konstantu 16 bitu vērtību, ko sauc - koda rādītājs. Kopumā ir 65536 rādītāji. Lai ietaupītu vietu, kodiem 0 -255 izmantojām Latin-1, viegli mainot ASII uz UNICODE. Šis standarts atrisināja daudzas problēmas, bet ne visas. Sakarā ar jaunu vārdu ienākšanu, piemēram, japāņu valodai, ir nepieciešams palielināt terminu skaitu par aptuveni 20 tūkstošiem.
ASCII Windows rakstzīmju kodu tabula. Jāatzīmē, ka ASCII tabulas vadības rakstzīmes sākotnēji tika izmantotas, lai nodrošinātu datu apmaiņu ar teletaipmašīnu, datu ievadi no perforētās lentes un vienkāršai ārējo ierīču vadībai. |
Kods | Apraksts |
---|---|
NUL, 00 | Nulle, tukša |
SOH, 01 | Virsraksta sākums |
STX, 02 | Teksta sākums, teksta sākums. |
ETX, 03 | Teksta beigas, teksta beigas |
EOT, 04 | Pārraides beigas |
ENQ, 05 | Jautājiet. Lūdzu apstipriniet |
AK, 06 | Atzinība. Es apstiprinu |
BEL, 07 | Zvanīt, zvani |
BS, 08 | Backspace, atgriezieties vienu rakstzīmi atpakaļ |
CILNE, 09 | Cilne, horizontāla cilne |
LF, 0A | Līnijas padeve, līnijas padeve. Mūsdienās lielākajā daļā programmēšanas valodu to apzīmē kā \n |
VT, 0B | Vertikāla cilne, vertikāla tabula. |
FF, 0C | Veidlapas plūsma, lapas plūsma, jauna lapa |
CR, 0D | Karieta atgriešana, karietes atgriešana. Mūsdienās lielākajā daļā programmēšanas valodu to apzīmē kā \r |
SO,0E | Shift Out, mainiet tintes lentes krāsu drukas ierīcē |
SI,0F | Shift In, atgrieziet drukas ierīces tintes lentes krāsu atpakaļ |
DLE, 10 | Data Link Escape, pārslēdzot kanālu uz datu pārraidi |
DC1, 11 DC2, 12 DC3, 13 DC4, 14 | Ierīču vadība, ierīces vadības simboli |
NAK, 15 | Negatīvs apstiprinājums, es neapstiprinu. |
SYN, 16 | Sinhronizācija. Sinhronizācijas simbols |
ETB, 17 | Teksta bloka beigas, teksta bloka beigas |
CAN, 18 | Atcelt, iepriekš pārsūtīta atcelšana |
EM, 19 | Vidēja beigas |
SUB, 1A | Aizstājējs, aizstājējs. Novietots simbola vietā, kura nozīme pārraides laikā tika zaudēta vai sabojāta |
ESC, 1B | Escape Control Sequence |
FS, 1C | Failu atdalītājs, failu atdalītājs |
GS, 1D | Grupas atdalītājs |
RS, 1E | Ierakstu atdalītājs, ierakstu atdalītājs |
ASV, 1F | Vienības atdalītājs |
DEL, 7F | Dzēst, dzēst pēdējo rakstzīmi. |