24. Ingiliz tilidagi matnni kodlash haqida ma’lumot bering?
ASCII - lotin uchun asosiy kodlash.Matn kodlashlarining rivojlanishi IT sanoatining shakllanishi bilan bir vaqtda sodir bo'lgan va shu vaqt ichida ular juda ko'p o'zgarishlarga duch kelishgan. Tarixiy jihatdan hamma narsa EBCDIC-dan boshlangan bo'lib, u rus tilida evonik bo'lmagan, bu lotin alifbosidagi harflarni, arab raqamlari va tinish belgilarini boshqaruv belgilari bilan kodlash imkonini berdi.Ammo shunga qaramay, zamonaviy matn kodlashlarini rivojlantirishning boshlang'ich nuqtasi mashhur deb hisoblanishi kerak ASCII (Axborot almashish uchun Amerika standart kodi, rus tilida odatda "aski" deb talaffuz qilinadi). Unda ingliz tilida so'zlashadigan foydalanuvchilar tomonidan eng ko'p ishlatiladigan birinchi 128 ta belgi - lotin harflari, arab raqamlari va tinish belgilari tasvirlangan.Hatto ASCII-da tasvirlangan ushbu 128 ta belgida qavslar, xashlar, yulduzcha va boshqalar kabi ba'zi bir xizmat belgilar mavjud edi. Aslida, ularni o'zingiz ko'rishingiz mumkin:Aynan shu 128 ta belgi asl ASCII-dan standartga aylandi va boshqa har qanday kodlashda siz ularga albatta javob berasiz va ular shu tartibda turadi.Ammo haqiqat shundaki, bitta bayt ma'lumot yordamida siz 128 emas, balki 256 xil qiymatlarni kodlashingiz mumkin (ikkitasi sakkizga teng 256 ga teng), shuning uchun Asuka-ning asosiy versiyasidan keyin bir butun seriyalar paydo bo'ldi kengaytirilgan ASCII kodlashlari, unda 128 ta asosiy belgidan tashqari, milliy kodlash belgilarini (masalan, rus tili) kodlash mumkin edi.Bu erda, ehtimol, tavsifda ishlatiladigan sanoq tizimlari haqida bir oz ko'proq gapirish kerak. Birinchidan, barchangizga ma'lumki, kompyuter faqat ikkilik tizimdagi raqamlar bilan ishlaydi, ya'ni nollar va birliklar bilan ("Kimdir kollejda yoki maktabda o'qigan bo'lsa, mantiqiy algebra"). , ularning har biri noldan boshlab 2 ga teng, ettinchisida esa ikkitaga teng:Bunday qurilishdagi barcha mumkin bo'lgan nol va bitta kombinatsiyalar atigi 256 bo'lishi mumkinligini anglash qiyin emas. Raqamni ikkilikdan o'nli kasrga aylantirish juda oddiy. Siz yuqorida joylashgan ikkita kuchning barchasini qo'shishingiz kerak.Bizning misolimizda, bu 1 (nol quvvatga 2) ortiqcha 8 (ikkitasi 3 quvvatga), ortiqcha 32 (ikkitasi beshinchi kuchga), ortiqcha 64 (oltinchiga), ortiqcha 128 (ettinchiga). Umumiy kasrda 233 bo'ladi. Ko'rib turganingizdek, hamma narsa juda oddiy.Ammo bilan stolga diqqat bilan qarasangiz aSCII belgilarshunda ular o'n oltinchi kodlashda ifodalanganligini ko'rasiz. Masalan, yulduzcha Asukadagi 2A o'nlik soniga mos keladi. Ehtimol, o'n oltilik sanoq tizimida arab raqamlaridan tashqari A (o'n) degan ma'nodan F (o'n beshgacha) gacha lotin harflari ham ishlatilishini bilsangiz kerak.Xo'sh, uchun tarjima ikkilik raqam o'n oltilikka quyidagi oddiy va intuitiv usulga murojaat qiling. Har bir bayt ma'lumot yuqoridagi skrinshotda ko'rsatilgandek to'rt bitli ikki qismga bo'linadi. Shunday qilib har bir yarim baytda faqat o'n oltita raqam sifatida osonlikcha ifodalanadigan ikkitomonlama kodda faqat o'n oltita qiymat (ikkitadan to'rtinchi kuchgacha) bo'lishi mumkin.Bundan tashqari, baytning chap yarmida skrinshotda ko'rsatilgandek emas, balki yana noldan boshlab darajalarni hisoblash kerak bo'ladi. Natijada, ba'zi oddiy hisob-kitoblarga ko'ra, biz E9 raqami skrinshotda kodlanganligini bilib olamiz. Umid qilamanki, mening mulohazalarim va ushbu jumboqning echimi siz uchun aniq bo'lib chiqdi. Xo'sh, endi matnni kodlash to'g'risida gaplashishni davom ettiramiz.Shunday qilib, biz ASCII haqida gapirishni boshladik, bu go'yo barcha zamonaviy kodlashlarni rivojlantirish uchun boshlang'ich nuqtasi edi (Windows 1251, Unicode, UTF 8).Dastlab, u erda faqat 128 ta belgi lotin alifbosi, arab raqamlari va boshqa biron bir narsa mavjud edi, ammo kengaytirilgan versiyada bir bayt ma'lumotga kodlanishi mumkin bo'lgan barcha 256 qiymatdan foydalanish mumkin bo'ldi. O'sha. Askiga o'z tilingiz harflari belgilarini qo'shish mumkin bo'ldi.Bu erda aniqlik kiritish uchun yana bir bor chuqurlashish kerak bo'ladi - nega bizga kodlash umuman kerak? matnlar va nima uchun bu juda muhim. Sizning kompyuteringiz ekranidagi ramzlar ikkita narsa - barcha turdagi belgilarning vektor shakllari to'plamlari (vakolatxonalari) (ular birgalikda fayllarda) va ushbu vektor shakllari to'plamidan chiqarib olishga imkon beruvchi kod asosida hosil bo'ladi. (shrift fayli) aniq joyga kiritilishi kerak bo'lgan belgi.Vektor shakllari uchun shriftlarning o'zi mas'ul ekanligi aniq, ammo operatsion tizim va unda qo'llaniladigan dasturlar kodlash uchun javobgardir. O'sha. kompyuteringizdagi har qanday matn baytlar to'plami bo'lib, ularning har biri ushbu matnning bitta belgisini kodlaydi.Ushbu matnni ekranda ko'rsatadigan dastur (matn muharriri, brauzer va boshqalar), kodni ajratishda, keyingi belgining kodlashini o'qiydi va kerakli shrift faylida mos keladigan vektor shaklini qidiradi, bu esa uni ko'rsatish uchun bog'langan matnli hujjat. Hammasi sodda va oddiy.Bu shuni anglatadiki, bizga kerak bo'lgan har qanday belgini (masalan, milliy alifbodan) kodlash uchun ikkita shart bajarilishi kerak - bu belgining vektor shakli ishlatilgan shriftda bo'lishi kerak va bu belgi kengaytirilgan ASCII kodlashlarida kodlanishi mumkin bir bayt. Shuning uchun bunday variantlarning to'liq to'plami mavjud. Faqat rus tilining belgilarini kodlash uchun kengaytirilgan Asukaning bir nechta navlari mavjud.Masalan, dastlab paydo bo'ldi CP866, unda rus alifbosining belgilaridan foydalanish mumkin edi va bu ASCII ning kengaytirilgan versiyasi edi.O'sha. uning yuqori qismi Asuka-ning asosiy versiyasiga (128 ta lotincha belgilar, raqamlar va boshqa har qanday axloqsizliklar) to'liq mos tushdi, bu yuqoridagi skrinshotda ko'rsatilgan, ammo CP866 kodlangan jadvalning pastki qismida allaqachon skrinshotda ko'rsatilgan ko'rinish mavjud edi quyida joylashgan va yana 128 ta belgini (ruscha harflar va har xil psevdo-grafikalar) kodlashga ruxsat berilgan:Ko'ryapsizmi, o'ng ustunda raqamlar 8 bilan boshlanadi, chunki 0 dan 7 gacha bo'lgan raqamlar asosiy ASCII qismiga tegishli (birinchi skrinshotga qarang). Shunday qilib CP866 dagi ruscha "M" harfi bir bayt ma'lumotga yozilishi mumkin bo'lgan 9C kodiga ega bo'ladi (u mos keladigan satr 9 va o'n oltinchi belgida C raqamli ustun bilan kesishgan joyda joylashgan) va agar ruscha harflar bilan mos shrift mavjud, bu harf muammosiz matnda ko'rsatiladi.Bu miqdor qayerdan paydo bo'ldi? cP866-dagi pseudografiya? Gap shundaki, rus matni uchun kodlash grafikaning bunday taqsimoti bo'lmagan o'sha g'azabli yillarda ishlab chiqilgan operatsion tizimlar hozirgi kabi. Dosda va shunga o'xshash matnli operatsion tizimlarda psevdo-grafikalar qandaydir tarzda matnlarning dizaynini xilma-xillashtirishga imkon berdi va shu sababli CP866 va uning barcha boshqa tengdoshlari Asuka-ning kengaytirilgan versiyalari qatoriga kiradi.CP866 IBM tomonidan tarqatilgan, ammo bunga qo'shimcha ravishda ruscha belgilar uchun bir qator kodlashlar ishlab chiqilgan, masalan, ushbu turga (kengaytirilgan ASCII) tegishli bo'lishi mumkin KOI8-R:Uning ishlash printsipi biroz oldinroq tasvirlangan CP866 bilan bir xil bo'lib qoladi - matnning har bir belgisi bitta bayt bilan kodlangan. Skrinshotda KOI8-R jadvalining ikkinchi yarmi ko'rsatilgan birinchi yarmi ushbu maqoladagi birinchi skrinshotda ko'rsatilgan asosiy Asuka bilan to'liq mos keladi.KOI8-R kodlash xususiyatlari orasida shuni ta'kidlash kerakki, uning jadvalidagi rus harflari alfavit tartibida emas, masalan, CP866 da bo'lgani kabi.Agar siz birinchi skrinshotga (barcha kengaytirilgan kodlashlarga kiritilgan asosiy qismga) qarasangiz, KOI8-R rus harflari ular bilan bir qatorda lotin alifbosidagi harflar bilan bir xil jadval katakchalarida joylashganligini sezasiz. jadvalning birinchi qismidan. Bu rus tilidan lotin belgilariga o'tishning qulayligi uchun faqat bitni (ikkitadan ettinchi kuchga yoki 128 ga) tashlab, amalga oshirildi.
Do'stlaringiz bilan baham: |