ASCII jadvali: 128 ta raqam qanday qilib matnning asosiga aylandi
ASCII, American Standard Code for Information Interchange (Axborot almashinuvi uchun Amerika standart kodi) so'zlarining qisqartmasi bo'lib, kompyuterlarga harf nima ekanligi bo'yicha kelishishni o'rgatgan kodlash tizimidir. 1963-yilda nashr etilgan va 1960-yillar davomida takomillashtirilgan bu tizim ingliz tili matnining barcha asosiy belgilarini, raqamlarni va bir nechta boshqaruv signallarini mashina saqlashi va uzatishi mumkin bo'lgan raqamlarga moslashtiradi. Katta A klavishini bosganingizda, kompyuteringiz shaklni emas, balki 65 raqamini saqlaydi. ASCII — bu raqam qayerga borishidan qat'i nazar, uni A degan ma'noga aylantiradigan qidiruv jadvalidir.
Standart o'zining ixchamligi bilan mashhur. ASCII — 7 bitli kod, ya'ni har bir belgi yetti ikkilik raqamga sig'adi va butun to'plam aynan 2 ning 7-darajasi, ya'ni 0 dan 127 gacha raqamlangan 128 ta alohida kod nuqtasini qamrab oladi. Bu tejamkorlik ataylab qilingan edi. Ilk teletayplar va modemlar sekin va qimmat edi, shuning uchun har bir bit muhim edi. Yetti bit bosh va kichik lotin harflarini, o'nta raqamni, keng tarqalgan tinish belgilarini va qurilmalarni sinxron holatda ushlab turadigan signal belgilarini qamrab olishga yetarli bo'lgan, bir bit esa ko'plab tizimlar xato tekshirish uchun ishlatgan zaxira sifatida qolgan.

Ikki yarim: boshqaruv belgilari va bosiladigan belgilar
Jadval ikki hududga aniq bo'linadi. 0 dan 31 gacha bo'lgan kodlar, shuningdek 127-kod (DEL), boshqaruv belgilaridir. Ular ekranda glif chop etmaydi. Buning o'rniga ular qurilmaga biror narsa qilishni buyuradi: 9-kod gorizontal tab, 10-kod yangi qatorga o'tkazuvchi qator uzatishi, 13-kod karetkani qaytarish, 7-kod esa bir vaqtlar terminalni eshittirib chalingan qo'ng'iroqdir. Jami o'ttiz uchta bunday signal kodi mavjud bo'lib, ularning ko'pi endi tarixiy qiziqish predmeti bo'lsa-da, qator uzatish, karetkani qaytarish va tab bugungi kunda matn fayllari qanday formatlanishida hal qiluvchi ahamiyatga ega bo'lib qolmoqda.
32 dan 126 gacha bo'lgan kodlar bosiladigan belgilar bo'lib, jami to'qson beshtasi bor. 32-kod — bo'sh joy bo'lib, u hech narsa ko'rsatmasa-da, kursorni oldinga siljitgani uchun bosiladigan hisoblanadi. Undan keyin tinish belgilari va ramzlar, 48–57 kodlarida 0 dan 9 gacha raqamlar, 65–90 kodlarida A dan Z gacha bosh harflar va 97–122 kodlarida a dan z gacha kichik harflar keladi. Bu joylashuvdan chiroyli bir xususiyat kelib chiqadi: bir xil harfning kichik va bosh varianti aniq 32 taga farq qiladi, shuning uchun bitta bitni almashtirish registrni o'zgartiradi. Bu qonuniyatlar tasodifiy emas — ular saralash va registrni o'zgartirish oddiy arifmetika bilan bajarilishi uchun ataylab loyihalashtirilgan.
O'nlik, o'n oltilik va ikkilik: bitta raqamning uch ko'rinishi
Har bir ASCII kodi shunchaki raqam bo'lib, siz uni uch xil yozilishda ko'rasiz. O'nlik — kundalik 10-asosli shakl, shuning uchun A — 65. O'n oltilik, 16-asosli, dasturchilar murojaat qiladigan shakl bo'lib, u baytlarga mos keladi: A — 0x41, bosiladigan diapazon esa 0x20 dan 0x7E gacha davom etadi. Ikkilik, 2-asosli, apparat ta'minoti aslida saqlaydigan shakl bo'lib, A o'zining yetti bitida 1000001 ko'rinishida bo'ladi. Bir xil belgi, uch xil yozuv — va ular orasida erkin harakatlana olish xotira dumplarini yoki tarmoq trafigini o'qiganingizda asosiy ko'nikmadir. Agar bu konvertatsiyalar bilan tez-tez ishlasangiz, speedor.net dagi kengroq ma'lumotnoma jadvallari to'plami moslashtirishlarni bir bosishda yaqinroq tutadi.

ASCII hali ham qayerda muhim
ASCIIni tarix bo'limiga qo'yish xato bo'lardi. U kodga tegadigan har bir kishining kundalik ishida tirik. Dasturlash tillari satr literallari, manba fayllari va protokol kalit so'zlarini bayt darajasida ASCII deb ko'radi. HTTP sarlavhalari, SMTP kabi tarmoq protokollari va ko'plab konfiguratsiya formatlari o'qishga qulay bo'lib qolishi uchun ASCIIda belgilangan. Satr buzilib ko'ringanda, dasturchilar ASCII jadvaliga qarshi xom baytlarni o'qish uchun geks ko'ruvchiga murojaat qiladi va yo'l qo'yilgan boshqaruv belgisi yoki noto'g'ri qator oxirini payqaydi. URL kodlash, Base64 va escape ketma-ketliklarining barchasi ASCII qiymatlariga asoslanadi. Kodlash xatolarini tuzatayotgan har bir kishi uchun dasturchi vositalari yonida tezkor ma'lumotnoma sirli baytni aniq javobga aylantiradi.
ASCIIdan Unicode va UTF-8 ga
ASCII ingliz tilini ajoyib tarzda qamrab oldi va deyarli boshqa hech narsani emas. 128 belgilik chegara diakritik harflarni, kirillni, xitoychani, arabchani yoki emojilarni sig'dira olmaydi. Unicode bunga har bir yozuv tizimidagi har bir belgiga kod nuqtasi deb ataladigan noyob raqam berish orqali javob berdi — hozirda yuz mingdan ortiq belgi mavjud. Muhimi, Unicode saqlash formati emas, balki belgilar katalogi, shuning uchun u kod nuqtalarini baytlarga aylantirish uchun kodlashga muhtoj.
UTF-8 — aynan shu kodlash bo'lib, u ASCII haqiqatan ham yo'qolmagan sababdir. UTF-8 har bir belgi uchun bir dan to'rtta baytgacha ishlatadi va u 0 dan 127 gacha bo'lgan kod nuqtalari — butun ASCII diapazoni — bitta baytda, oddiy ASCIIga bir xil holda saqlanadigan qilib loyihalashtirilgan. Bu UTF-8 ni to'liq orqaga moslashuvchan qiladi: har qanday to'g'ri ASCII fayl allaqachon to'g'ri UTF-8 fayldir. 127 dan yuqori belgilar qo'shimcha baytlardan foydalanadi. Ana shu nafis moslik UTF-8 hozir internetning katta qismini quvvatlashining asosiy sababidir. Qisqasi, ASCII — asl 128 belgilik yadro, Unicode — uni o'z ichiga olgan universal katalog, UTF-8 esa ASCII matnini bayt-baytiga o'zgarmagan holda saqlab, ikkalasini ham tashuvchi kodlashdir.
Tez-tez so'raladigan savollar
ASCII jadvalida nechta belgi bor?
Standart ASCII 0 dan 127 gacha raqamlangan 128 ta belgini belgilaydi. Ulardan 95 tasi bo'sh joyni ham qo'shgan holda bosiladigan belgilar, 33 tasi esa glif chop etish o'rniga qurilmalarga signal beruvchi boshqaruv belgilaridir.
Boshqaruv va bosiladigan belgilar orasidagi farq nima?
Boshqaruv belgilari, 0 dan 31 gacha va 127-kod, qurilmaga qator uzatish yoki tab kabi biror narsa qilishni buyuradi va ko'rinadigan glif chiqarmaydi. Bosiladigan belgilar, 32 dan 126 gacha bo'lgan kodlar, siz ekranda haqiqatan ko'radigan harflar, raqamlar, tinish belgilari va bo'sh joydir.
Nima uchun ASCII 7-bitli kod?
Yetti bit aynan 128 ta kombinatsiya beradi, bu esa ingliz harflarini, raqamlarni, tinish belgilarini va boshqaruv signallarini qamrab olishga yetarli bo'lib, ilk sekin apparat ta'minotida o'tkazuvchanlikni tejagan. Baytdagi sakkizinchi bit ko'pincha juftlik xatosini tekshirish uchun zaxiralangan.
A harfi uchun ASCII kodi qanday?
Bosh A o'nlikda 65, o'n oltilikda 0x41, ikkilikda esa 1000001. Kichik a o'nlikda 97 bo'lib, bu aynan 32 taga yuqori — bu registrni oddiy arifmetika bilan o'zgartirishga imkon beruvchi o'rnatilgan naqshdir.
ASCII Unicode bilan bir xilmi?
Yo'q. ASCII 128 ta belgini qamrab oladi, Unicode esa har bir yozuv tizimida yuz mingdan ortiq belgini kataloglaydi. ASCII aslida Unicodening dastlabki 128 kod nuqtasi bo'lib, u kattaroq standartning kichik qism to'plamidir.
UTF-8 ASCII bilan qanday bog'liq?
UTF-8 — 0 dan 127 gacha bo'lgan kod nuqtalarini ASCIIga o'xshash bitta baytda saqlaydigan Unicode kodlashi. Bu har bir ASCII faylni to'g'ri UTF-8 faylga aylantiradi, shuning uchun UTF-8 orqaga moslashuvchan bo'lib, zamonaviy internetda ustunlik qiladi.
