Keling, hammasi qanday amalga oshirilganini aniqlaylik matnlarni raqamli kodga aylantirish? Aytgancha, bizning veb-saytimizda Onlayn kod kalkulyatori yordamida istalgan matnni o'nlik, o'n oltilik, ikkilik kodga aylantirishingiz mumkin.
Kompyuter nazariyasiga ko'ra, har qanday matn alohida belgilardan iborat. Bu belgilarga quyidagilar kiradi: harflar, raqamlar, kichik tinish belgilari, maxsus belgilar ("", №, () va boshqalar), ular so'zlar orasidagi bo'shliqlarni ham o'z ichiga oladi.
Kerakli bilimlar bazasi. Men matn yozadigan belgilar to'plami Alifbo deb ataladi.
Alifboda olingan belgilar soni uning kuchini ifodalaydi.
Axborot miqdori quyidagi formula bo'yicha aniqlanishi mumkin: N = 2b
256 dan iborat alifbo deyarli barcha kerakli belgilarni o'z ichiga olishi mumkin. Bunday alifbolar YETARLI deb ataladi.
Agar biz 256 sig'imli alifboni olsak va 256 = 28 ekanligini unutmang.
Agar siz har bir belgini ikkilik kodga aylantirsangiz, bu kompyuter matn kodi 1 baytni egallaydi.
Har qanday matn klaviaturada, klaviatura tugmalarida yoziladi, biz o'zimizga tanish bo'lgan belgilarni (raqamlar, harflar va boshqalar) ko'ramiz. Ular kompyuterning operativ xotirasiga faqat ikkilik kod shaklida kiritiladi. Har bir belgi uchun ikkilik kod sakkiz xonali raqamga o'xshaydi, masalan 00111111.
Bayt manzilli xotiraning eng kichik qismi bo'lgani uchun va xotira har bir belgi uchun alohida manzillanganligi sababli, bunday kodlashning qulayligi aniq. Biroq, 256 belgi har qanday ramziy ma'lumot uchun juda qulay miqdordir.
Tabiiyki, savol tug'iladi: aynan qaysi biri? sakkiz xonali kod har bir belgiga tegishlimi? Va matnni raqamli kodga qanday aylantirish mumkin?
Bu jarayon shartli va biz boshqacha fikr yuritishga haqlimiz belgilarni kodlash usullari. Alifboning har bir belgisi 0 dan 255 gacha o'z raqamiga ega. Va har bir raqamga 00000000 dan 11111111 gacha kod beriladi.
Kodlash jadvali "cheat varaq" bo'lib, unda alifbo belgilari seriya raqamiga muvofiq ko'rsatilgan. Har xil turdagi kompyuterlar turli xil kodlash jadvallaridan foydalanadi.
ASCII (yoki Asci) shaxsiy kompyuterlar uchun xalqaro standartga aylandi. Jadval ikki qismdan iborat.
Birinchi yarmi ASCII jadvali uchun. (Bu birinchi yarmi standartga aylandi.)
Leksikografik tartibga rioya qilish, ya'ni jadvalda harflar (kichik va bosh harf) alifbo tartibida qat'iy ko'rsatilgan, raqamlar esa o'sish tartibida bo'lsa, alifboni ketma-ket kodlash printsipi deyiladi.
Rus alifbosi uchun ular ham amal qilishadi ketma-ket kodlash printsipi.
Hozirgi vaqtda, bizning davrimizda ular butun foydalanishadi beshta kodlash tizimi Rus alifbosi (KOI8-R, Windows. MS-DOS, Macintosh va ISO). Kodlash tizimlarining soni va bitta standartning yo'qligi tufayli rus tilidagi matnni kompyuter shakliga o'tkazishda ko'pincha tushunmovchiliklar yuzaga keladi.
Birinchilardan biri rus alifbosini kodlash standartlari va shaxsiy kompyuterlarda ular KOI8 ("Axborot almashish kodi, 8-bit") deb hisoblashadi. Ushbu kodlash 70-yillarning o'rtalarida bir qator ES kompyuterlarida ishlatilgan va saksoninchi yillarning o'rtalaridan boshlab rus tiliga tarjima qilingan birinchi UNIX operatsion tizimlarida qo'llanila boshlandi.
90-yillarning boshidan, MS DOS operatsion tizimi hukmronlik qilgan vaqtdan boshlab, CP866 kodlash tizimi paydo bo'ldi ("CP" "Kod sahifasi" degan ma'noni anglatadi).
Gigant kompyuter kompaniyalari APPLE, o'zlari ishlagan innovatsion tizimi (Mac OS) bilan MAC alifbosini kodlash uchun o'zlarining tizimidan foydalanishni boshlaydilar.
Xalqaro standartlar tashkiloti (ISO) rus tili uchun yana bir standartni tayinlaydi alifbo kodlash tizimi, bu ISO 8859-5 deb ataladi.
Va bugungi kunda alifboni kodlash uchun eng keng tarqalgan tizim Microsoft Windows-da ixtiro qilingan va CP1251 deb ataladi.
90-yillarning ikkinchi yarmidan boshlab rus tilidagi matnni raqamli kodga tarjima qilish standarti muammosi nafaqat Unicode deb nomlangan tizimni standartga kiritish orqali hal qilindi. U o'n olti bitli kodlash bilan ifodalanadi, ya'ni har bir belgi uchun aniq ikki bayt operativ xotira ajratilgan. Albatta, bu kodlash bilan xotira xarajatlari ikki barobar ortadi. Biroq, bunday kod tizimi 65 536 tagacha belgini elektron kodga aylantirish imkonini beradi.
Standart Unicode tizimining o'ziga xosligi shundaki, u mavjud, yo'q bo'lib ketgan yoki ixtiro qilingan mutlaqo har qanday alifboni kiritishdir. Oxir oqibat, mutlaqo har qanday alifbo, bunga qo'shimcha ravishda, Unicode tizimi juda ko'p matematik, kimyoviy, musiqiy va umumiy belgilarni o'z ichiga oladi.
Kompyuteringiz xotirasida so‘z qanday ko‘rinishini ko‘rish uchun ASCII jadvalidan foydalanamiz.
Ko'pincha rus alifbosidagi harflar bilan yozilgan matnni o'qib bo'lmaydi, bu kompyuterlardagi alifbo kodlash tizimlarining farqlari bilan bog'liq. Bu juda tez-tez uchraydigan juda keng tarqalgan muammo.
Matn yoziladigan belgilar to'plami deyiladi alifbo.
Alifbodagi belgilar soni uning kuch.
Axborot miqdorini aniqlash formulasi: N=2b,
bu erda N - alifboning kuchi (belgilar soni),
b – bitlar soni (belgining axborot og‘irligi).
256 ta belgidan iborat bo'lgan alifbo deyarli barcha kerakli belgilarni sig'dira oladi. Bu alifbo deyiladi yetarli.
Chunki 256 = 2 8, keyin 1 belgining og'irligi 8 bit.
O'lchov birligi 8 bitga nom berildi 1 bayt:
1 bayt = 8 bit.
Kompyuter matnidagi har bir belgining ikkilik kodi 1 bayt xotirani egallaydi.
Bayt-bayt belgilarni kodlashning qulayligi aniq, chunki bayt xotiraning eng kichik manzilli qismidir va shuning uchun protsessor matnni qayta ishlashda har bir belgiga alohida kirishi mumkin. Boshqa tomondan, 256 belgi juda ko'p turli xil ramziy ma'lumotlarni ifodalash uchun etarli raqamdir.
Bu shartli masala ekanligi aniq, siz ko'plab kodlash usullarini topishingiz mumkin.
Kompyuter alifbosining barcha belgilari 0 dan 255 gacha raqamlangan. Har bir raqam 00000000 dan 11111111 gacha bo'lgan sakkiz bitli ikkilik kodga to'g'ri keladi. Bu kod oddiygina ikkilik sanoq sistemasidagi belgining seriya raqamidir.
Har xil turdagi kompyuterlar turli xil kodlash jadvallaridan foydalanadi.
Jadval shaxsiy kompyuterlar uchun xalqaro standartga aylandi ASCII(askini o'qing) (Axborot almashish uchun Amerika standart kodeksi).
ASCII kodlar jadvali ikki qismga bo'lingan.
Jadvalning faqat birinchi yarmi xalqaro standartdir, ya'ni. dan raqamlari bilan belgilar 0 (00000000), gacha 127 (01111111).
Tartib raqam |
Kod |
Belgi |
0 - 31 |
00000000 - 00011111 |
0 dan 31 gacha raqamlari bo'lgan belgilar odatda boshqaruv belgilari deb ataladi. |
32 - 127 |
00100000 - 01111111 |
Jadvalning standart qismi (inglizcha). Bunga lotin alifbosining kichik va bosh harflari, oʻnlik sonlar, tinish belgilari, barcha turdagi qavslar, tijorat va boshqa belgilar kiradi. |
128 - 255 |
10000000 - 11111111 |
Jadvalning muqobil qismi (ruscha). |
![]() |
E'tibor bering, kodlash jadvalida harflar (katta va kichik harflar) alifbo tartibida, raqamlar esa o'sish tartibida joylashtirilgan. Belgilarni joylashtirishda leksikografik tartibning bunday kuzatilishi alifboni ketma-ket kodlash tamoyili deb ataladi.
Rus alifbosining harflari uchun ketma-ket kodlash printsipi ham kuzatiladi.
Afsuski, hozirda besh xil kirill kodlashlari mavjud (KOI8-R, Windows. MS-DOS, Macintosh va ISO). Shu sababli, rus tilidagi matnni bir kompyuterdan ikkinchisiga, bir dasturiy ta'minot tizimidan boshqasiga o'tkazishda muammolar ko'pincha paydo bo'ladi.
Xronologik jihatdan rus harflarini kompyuterlarda kodlashning birinchi standartlaridan biri KOI8 ("Axborot almashish kodi, 8-bit") edi. Ushbu kodlash 70-yillarda ES kompyuter seriyasidagi kompyuterlarda ishlatilgan va 80-yillarning o'rtalaridan boshlab UNIX operatsion tizimining birinchi ruslashtirilgan versiyalarida qo'llanila boshlandi.
90-yillarning boshidan boshlab, MS DOS operatsion tizimining hukmronlik qilish vaqti, CP866 kodlash saqlanib qoldi ("CP" "Kod sahifasi", "kod sahifasi" degan ma'noni anglatadi).
Mac OS operatsion tizimida ishlaydigan Apple kompyuterlari o'zlarining Mac kodlashlaridan foydalanadilar.
Bundan tashqari, Xalqaro standartlar tashkiloti (ISO) rus tili uchun standart sifatida ISO 8859-5 deb nomlangan yana bir kodlashni tasdiqladi.
Hozirda ishlatiladigan eng keng tarqalgan kodlash Microsoft Windows, qisqartirilgan CP1251.
90-yillarning oxiridan boshlab belgilar kodlashni standartlashtirish muammosi yangi xalqaro standartni joriy etish orqali hal qilindi. Unicode. Bu 16-bitli kodlash, ya'ni. u har bir belgi uchun 2 bayt xotira ajratadi. Albatta, bu egallagan xotira hajmini 2 barobar oshiradi. Ammo bunday kod jadvali 65536 tagacha belgini kiritish imkonini beradi. Unicode standartining to'liq spetsifikatsiyasi dunyoning barcha mavjud, yo'q bo'lib ketgan va sun'iy ravishda yaratilgan alifbolarini, shuningdek, ko'plab matematik, musiqiy, kimyoviy va boshqa belgilarni o'z ichiga oladi.
Ba'zida boshqa kompyuterdan olingan rus alifbosi harflaridan iborat matnni o'qib bo'lmaydi - monitor ekranida qandaydir "abrakadabra" ko'rinadi. Buning sababi, kompyuterlar rus tili uchun turli xil belgilar kodlashlaridan foydalanadi.
Hamma biladiki, kompyuterlar katta tezlikda ma'lumotlarning katta guruhlari bo'yicha hisob-kitoblarni amalga oshirishi mumkin. Ammo bu harakatlar faqat ikkita shartga bog'liqligini hamma ham bilmaydi: oqim bormi yoki yo'qmi va qanday kuchlanish.
Qanday qilib kompyuter turli xil ma'lumotlarni qayta ishlashga muvaffaq bo'ladi?
Buning siri ikkilik sanoq sistemasida. Barcha ma'lumotlar kompyuterga birliklar va nollar ko'rinishida kiradi, ularning har biri elektr simining bitta holatiga mos keladi: birlar - yuqori kuchlanish, nollar - past yoki birlar - kuchlanish mavjudligi, nollar - uning yo'qligi. Ma'lumotlarni nolga va birlarga aylantirish ikkilik konversiya deb ataladi va uning yakuniy belgilanishi ikkilik kod deb ataladi.
Kundalik hayotda qo'llaniladigan o'nlik sanoq tizimiga asoslangan o'nlik sanoq tizimida son qiymat 0 dan 9 gacha bo'lgan o'nta raqam bilan ifodalanadi va sonning har bir joyi uning o'ng tomonidagi joydan o'n baravar yuqori qiymatga ega. O'nlik sanoq sistemasida to'qqizdan katta raqamni ifodalash uchun uning o'rniga nol, chap tomondagi keyingi, qimmatroq joyga bitta qo'yiladi. Xuddi shunday, faqat ikkita raqamdan foydalanadigan ikkilik tizimda - 0 va 1, har bir joy uning o'ng tomonidagi joydan ikki baravar qimmatroqdir. Shunday qilib, ikkilik kodda faqat nol va bitta bitta son sifatida ifodalanishi mumkin va birdan katta har qanday raqam ikkita joyni talab qiladi. Nol va birdan keyin keyingi uchta ikkilik sonlar 10 (bir nolni o'qing) va 11 (birni o'qing) va 100 (bir nolni o'qing). 100 ikkilik 4 kasrga teng. O'ngdagi yuqori jadvalda boshqa BCD ekvivalentlari ko'rsatilgan.
Har qanday raqam ikkilik tizimda ifodalanishi mumkin, u kasrga qaraganda ko'proq joy egallaydi. Har bir harfga ma'lum ikkilik raqam berilgan bo'lsa, alifbo ikkilik tizimda ham yozilishi mumkin.
To'rtta joy uchun ikkita raqam
16 ta kombinatsiyani qorong'u va engil to'plar yordamida amalga oshirish mumkin, ularni to'rtta to'plamda birlashtirib, agar qorong'u to'plar nol va engil to'plar sifatida qabul qilinsa, 16 to'plam 16 birlikli ikkilik kodga aylanadi, buning raqamli qiymati. noldan beshgacha (27-betdagi yuqori jadvalga qarang). Ikkilik tizimda ikki turdagi to'plar bo'lsa ham, har bir guruhdagi to'plar sonini yoki raqamlardagi joylar sonini ko'paytirish orqali cheksiz sonli kombinatsiyalarni qurish mumkin.
Kompyuterni qayta ishlashda eng kichik birlik, bit - bu ikkita mumkin bo'lgan shartlardan biriga ega bo'lishi mumkin bo'lgan ma'lumotlar birligi. Masalan, birliklar va nollarning har biri (o'ngda) 1 bitni ifodalaydi. Bitni boshqa yo'llar bilan ifodalash mumkin: elektr tokining mavjudligi yoki yo'qligi, teshik yoki uning yo'qligi, o'ngga yoki chapga magnitlanish yo'nalishi. Sakkiz bit baytni tashkil qiladi. 256 mumkin bayt 256 belgi va belgilarni ifodalashi mumkin. Ko'pgina kompyuterlar bir vaqtning o'zida bir bayt ma'lumotlarni qayta ishlaydi.
Ikkilik konvertatsiya. To'rt xonali ikkilik kod 0 dan 15 gacha bo'lgan o'nlik sonlarni ifodalashi mumkin.
Ikkilik kod alifbo harflarini yoki tinish belgilarini ifodalash uchun foydalanilganda, qaysi kod qaysi belgiga mos kelishini ko'rsatadigan kod jadvallari talab qilinadi. Bir nechta shunday kodlar tuzilgan. Ko'pgina shaxsiy kompyuterlar ASCII deb nomlangan etti xonali kod yoki ma'lumot almashish uchun Amerika standart kodi bilan tuzilgan. O'ngdagi jadvalda ingliz alifbosi uchun ASCII kodlari ko'rsatilgan. Boshqa kodlar dunyoning boshqa tillaridagi minglab belgilar va alifbolar uchundir.
ASCII kodlar jadvalining bir qismi
Ikkilik sanoq sistemasi- bazali pozitsion sanoq tizimi 2. Mantiqiy shlyuzlardan foydalangan holda raqamli elektron sxemalarda bevosita amalga oshirilishi tufayli ikkilik tizim deyarli barcha zamonaviy kompyuterlarda va boshqa hisoblash elektron qurilmalarida qo'llaniladi.
Ikkilik sanoq sistemasida raqamlar ikkita belgi yordamida yoziladi ( 0 Va 1 ). Raqam qaysi sanoq sistemasida yozilganligi haqida chalkashmaslik uchun uning pastki o'ng tomonida indikator o'rnatilgan. Masalan, o'nlik sistemadagi son 5 10 , ikkilik 101 2 . Ba'zan ikkilik son prefiks bilan belgilanadi 0b yoki belgi & (ampersand), Masalan 0b101 yoki shunga ko'ra &101 .
Ikkilik sanoq sistemasida (o‘nlikdan tashqari boshqa sanoq sistemalarida bo‘lgani kabi) raqamlar birma-bir o‘qiladi. Masalan, 101 2 raqami “bir nol bir” deb talaffuz qilinadi.
Ikkilik sanoq sistemasida yoziladigan natural son (a n − 1 a n − 2 … a 1 a 0) 2 (\displaystyle (a_(n-1)a_(n-2)\nuqtalar a_(1)a_(0))_(2)), ma'noga ega:
(a n − 1 a n − 2 … a 1 a 0) 2 = ∑ k = 0 n − 1 a k 2 k , (\displaystyle (a_(n-1)a_(n-2)\dots a_(1)a_() 0))_(2)=\sum _(k=0)^(n-1)a_(k)2^(k),)Salbiy ikkilik raqamlar o'nlik sonlar bilan bir xil tarzda belgilanadi: raqam oldidagi "-" belgisi bilan. Ya'ni, ikkilik sanoq sistemasida yozilgan manfiy butun son (− a n − 1 a n − 2 … a 1 a 0) 2 (\displaystyle (-a_(n-1)a_(n-2)\nuqtalar a_(1)a_(0))_(2)), qiymatga ega:
(− a n - 1 a n - 2 … a 1 a 0) 2 = - ∑ k = 0 n - 1 a k 2 k . (\displaystyle (-a_(n-1)a_(n-2)\nuqtalar a_(1)a_(0))_(2)=-\sum _(k=0)^(n-1)a_( k)2^(k))qo'shimcha kod.
Ikkilik sanoq sistemasida yozilgan kasr son (a n − 1 a n − 2 … a 1 a 0 , a − 1 a − 2 … a − (m − 1) a − m) 2 (\displaystyle (a_(n-1)a_(n-2)\nuqtalar) a_(1)a_(0),a_(-1)a_(-2)\nuqta a_(-(m-1))a_(-m))_(2)), qiymatga ega:
(a n − 1 a n − 2 … a 1 a 0 , a − 1 a − 2 … a − (m − 1) a − m) 2 = ∑ k = − m n − 1 a k 2 k , (\displaystyle (a_() n-1)a_(n-2)\nuqta a_(1)a_(0),a_(-1)a_(-2)\nuqta a_(-(m-1))a_(-m))_( 2)=\sum _(k=-m)^(n-1)a_(k)2^(k),)
Qo'shimchalar jadvali
Ustun qo'shishga misol (ikkilik tizimida o'nlik 14 10 + 5 10 = 19 10 ifodasi 1110 2 + 101 2 = 10011 2 kabi ko'rinadi):
Ustunni ko'paytirishga misol (ikkilik tizimida o'nlik 14 10 * 5 10 = 70 10 ifodasi 1110 2 * 101 2 = 1000110 2 ga o'xshaydi):
1 raqamidan boshlab barcha raqamlar ikkiga ko'paytiriladi. 1 dan keyin keladigan nuqta ikkilik nuqta deb ataladi.
Aytaylik, bizga ikkilik raqam berildi 110001 2 . O'nli kasrga aylantirish uchun uni raqamlar bo'yicha yig'indi sifatida quyidagicha yozing:
1 * 2 5 + 1 * 2 4 + 0 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 49
Xuddi shu narsa biroz boshqacha:
1 * 32 + 1 * 16 + 0 * 8 + 0 * 4 + 0 * 2 + 1 * 1 = 49
Buni jadval shaklida quyidagicha yozishingiz mumkin:
512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 0 | 1 | ||||
+32 | +16 | +0 | +0 | +0 | +1 |
O'ngdan chapga harakatlaning. Har bir ikkilik birlik ostida uning ekvivalentini quyidagi qatorga yozing. Olingan o'nlik sonlarni qo'shing. Shunday qilib, 110001 2 ikkilik soni 49 10 o'nlik soniga ekvivalentdir.
Raqamni aylantirish kerak 1011010,101 2 o'nlik sistemaga. Bu raqamni quyidagicha yozamiz:
1 * 2 6 + 0 * 2 5 + 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 0 * 2 0 + 1 * 2 −1 + 0 * 2 −2 + 1 * 2 −3 = 90,625
Xuddi shu narsa biroz boshqacha:
1 * 64 + 0 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1 + 1 * 0,5 + 0 * 0,25 + 1 * 0,125 = 90,625
Yoki jadvalga muvofiq:
64 | 32 | 16 | 8 | 4 | 2 | 1 | 0.5 | 0.25 | 0.125 | |
1 | 0 | 1 | 1 | 0 | 1 | 0 | , | 1 | 0 | 1 |
+64 | +0 | +16 | +8 | +0 | +2 | +0 | +0.5 | +0 | +0.125 |
Ushbu usul yordamida raqamlarni ikkilikdan o'nli kasrga o'tkazish uchun siz chapdan o'ngga raqamlarni yig'ib, avval olingan natijani tizim bazasiga ko'paytirishingiz kerak (bu holda, 2). Ikkilik sistemadan oʻnlik sistemaga oʻtkazish uchun odatda Horner usuli qoʻllaniladi. Ikkilik sanoq sistemasida qo'shish va ko'paytirish bo'yicha ko'nikmalarni talab qiladigan teskari operatsiya qiyin.
Masalan, ikkilik raqam 1011011 2 o'nlik tizimga quyidagicha aylantiriladi:
0*2 + 1 = 1
1*2 + 0 = 2
2*2 + 1 = 5
5*2 + 1 = 11
11*2 + 0 = 22
22*2 + 1 = 45
45*2 + 1 = 91
Ya'ni, o'nlik sistemada bu raqam 91 deb yoziladi.
Raqamlar raqamdan o'ngdan chapga olinadi va sanoq tizimining asosiga (2) bo'linadi.
Masalan 0,1101 2
(0 + 1 )/2 = 0,5
(0,5 + 0 )/2 = 0,25
(0,25 + 1 )/2 = 0,625
(0,625 + 1 )/2 = 0,8125
Javob: 0,1101 2 = 0,8125 10
Aytaylik, 19 raqamini ikkilik raqamga aylantirishimiz kerak. Siz quyidagi protseduradan foydalanishingiz mumkin:
19/2 = 9 qoldiq bilan 1
9/2 = 4 qoldiq bilan 1
4/2 = 2 qoldiqsiz 0
2/2 = 1 qoldiqsiz 0
1/2 = 0 qoldiq bilan 1
Shunday qilib, biz har bir qismni 2 ga bo'lamiz va qolgan qismini ikkilik yozuvning oxiriga yozamiz. Bo'linish 0 bo'lguncha davom etamiz.Natijani o'ngdan chapga yozamiz. Ya'ni, pastki raqam (1) eng chap tomonda bo'ladi va hokazo. Natijada biz ikkilik yozuvda 19 raqamini olamiz: 10011 .
Agar asl son butun qismga ega bo'lsa, u kasr qismidan alohida aylantiriladi. Kasr sonni o'nlik sanoq tizimidan ikkilik tizimga o'tkazish quyidagi algoritm yordamida amalga oshiriladi:
Misol: kasrli kasr sonini aylantirishingiz kerak 206,116 kasrli ikkilik songa.
Butun qismning tarjimasi ilgari tasvirlangan algoritmlarga muvofiq 206 10 =11001110 2 ni beradi. Biz 0,116 ning kasr qismini 2 asosga ko'paytiramiz, mahsulotning butun qismlarini kerakli kasr ikkilik sonining o'nli kasrlariga kiritamiz:
0,116 2 = 0 ,232
0,232 2 = 0 ,464
0,464 2 = 0 ,928
0,928 2 = 1 ,856
0,856 2 = 1 ,712
0,712 2 = 1 ,424
0,424 2 = 0 ,848
0,848 2 = 1 ,696
0,696 2 = 1 ,392
0,392 2 = 0 ,784
va hokazo.
Shunday qilib, 0,116 10 ≈ 0, 0001110110 2
Biz olamiz: 206.116 10 ≈ 11001110.0001110110 2
Ikkilik tizim raqamli qurilmalarda qo'llaniladi, chunki u eng sodda va quyidagi talablarga javob beradi:
Hisoblashda manfiy ikkilik sonlarni ikkini toʻldiruvchida yozish keng qoʻllaniladi. Masalan, −5 10 raqamini −101 2 deb yozish mumkin, lekin 32 bitli kompyuterda 2 sifatida saqlanadi.
Chiziqli o'lchamlarni dyuymlarda ko'rsatishda an'anaviy ravishda o'nlik emas, balki ikkilik kasrlar qo'llaniladi, masalan: 5¾″, 7 15/16″, 3 11/32″ va boshqalar.
Ikkilik sanoq sistemasi ikkilik kodlash tizimi va asosi 2 ga teng boʻlgan koʻrsatkichli tortish funksiyasining birikmasidir. Shuni taʼkidlash kerakki, son ikkilik kodda yozilishi mumkin, sanoq sistemasi esa ikkilik boʻlmasligi mumkin. turli asos. Misol: BCD kodlash, unda o'nlik raqamlar ikkilik tizimda yoziladi va sanoq tizimi o'nlikdir.
08. 06.2018
Dmitriy Vassiyarovning blogi.
Bugun men siz, aziz o'quvchilarim bilan uchrashganimdan juda xursandman, chunki o'zimni birinchi darsdayoq sinfni harflar va raqamlar bilan tanishtira boshlagan o'qituvchidek his qilaman. Va biz raqamli texnologiyalar dunyosida yashayotganimiz sababli, men sizga ikkilik kod nima ekanligini aytib beraman, bu ularning asosidir.
Keling, terminologiyadan boshlaylik va binar nimani anglatishini bilib olaylik. Aniqlik uchun, keling, "o'nlik" deb ataladigan odatiy hisobimizga qaytaylik. Ya'ni, biz 10 ta raqamdan foydalanamiz, bu turli raqamlar bilan qulay ishlash va tegishli yozuvlarni saqlash imkonini beradi.
Ushbu mantiqdan kelib chiqqan holda, ikkilik tizim faqat ikkita belgidan foydalanishni ta'minlaydi. Bizning holatda, bu faqat "0" (nol) va "1". Va bu erda men sizni ogohlantirmoqchimanki, faraziy ravishda ularning o'rnida boshqa belgilar bo'lishi mumkin, ammo aynan mana shu qiymatlar signalning yo'qligi (0, bo'sh) va mavjudligini (1 yoki "tayoq") ko'rsatishga yordam beradi. Biz ikkilik kodning tuzilishini yanada tushunamiz.
Kompyuterlar paydo bo'lishidan oldin turli xil avtomatik tizimlar ishlatilgan, ularning ishlash printsipi signalni qabul qilishga asoslangan. Sensor ishga tushiriladi, sxema yopiladi va ma'lum bir qurilma yoqiladi. Signal pallasida oqim yo'q - operatsiya yo'q. Aynan elektron qurilmalar zanjirda kuchlanish mavjudligi yoki yo'qligi bilan ifodalangan ma'lumotlarni qayta ishlashda muvaffaqiyatga erishishga imkon berdi.
Ularning keyingi murakkablashuvi birinchi protsessorlarning paydo bo'lishiga olib keldi, ular ham o'z vazifalarini bajarib, ma'lum bir tarzda almashinadigan impulslardan iborat signalni qayta ishladilar. Biz hozir dastur tafsilotlarini ko'rib chiqmaymiz, lekin biz uchun quyidagilar muhim: elektron qurilmalar kiruvchi signallarning berilgan ketma-ketligini ajrata olishi mumkin edi. Albatta, shartli birikmani shunday tasvirlash mumkin: "signal bor"; "signal yo'q"; "signal bor"; "Signal bor." Siz hatto yozuvni soddalashtirishingiz mumkin: "bor"; "Yo'q"; "Mavjud"; "Mavjud".
Ammo "1" birligi bilan signal mavjudligini va uning yo'qligini nol "0" bilan belgilash osonroq. Keyin biz oddiy va ixcham ikkilik kodni ishlatishimiz mumkin: 1011.
Albatta, protsessor texnologiyasi ancha oldinga qadam tashladi va endi chiplar nafaqat signallar ketma-ketligini, balki alohida belgilardan iborat maxsus buyruqlar bilan yozilgan butun dasturlarni idrok eta oladi.
Ammo ularni yozib olish uchun signalning mavjudligi yoki yo'qligiga mos keladigan nol va birlardan iborat bir xil ikkilik kod ishlatiladi. U bormi yoki yo'qmi, bu muhim emas. Chip uchun ushbu variantlardan har biri bitta ma'lumot bo'lib, u "bit" deb ataladi (bit - rasmiy o'lchov birligi).
An'anaviy tarzda, belgi bir nechta belgilar ketma-ketligi sifatida kodlanishi mumkin. Ikkita signal (yoki ularning yo'qligi) faqat to'rtta variantni tavsiflashi mumkin: 00; 01;10; 11. Ushbu kodlash usuli ikki bitli deb ataladi. Ammo u ham bo'lishi mumkin:
Ochig'ini aytganda, bitta rasmiy versiya yo'q, lekin shunday bo'ldiki, sakkizta belgining kombinatsiyasi "bayt" deb nomlangan saqlangan ma'lumotlarning standart o'lchoviga aylandi. Bu hatto 8 bitli ikkilik kodda yozilgan bitta harfga ham qo'llanilishi mumkin. Shunday qilib, aziz do'stlarim, esda tuting (agar kimdir bilmasa):
8 bit = 1 bayt.
Bu shunday. Garchi 2 yoki 32 bitli qiymat bilan yozilgan belgi nominal ravishda bayt deb atalishi mumkin. Aytgancha, ikkilik kod tufayli biz baytlarda o'lchanadigan fayllar hajmini va ma'lumot va Internetni uzatish tezligini (sekundiga bit) taxmin qilishimiz mumkin.
Kompyuterlar uchun ma'lumotlarni yozib olishni standartlashtirish uchun bir nechta kodlash tizimlari ishlab chiqilgan bo'lib, ulardan biri 8 bitli yozishga asoslangan ASCII keng tarqalgan. Undagi qiymatlar maxsus tarzda taqsimlanadi:
Undagi qiymatlarning dekodlanishi jadvalda ko'rsatilgan.
Agar siz "0" va "1" tartibsiz tartibda joylashgan deb o'ylasangiz, unda siz qattiq adashasiz. Har qanday raqamni misol sifatida ishlatib, men sizga naqsh ko'rsataman va ikkilik kodda yozilgan raqamlarni o'qishni o'rgataman. Ammo buning uchun biz ba'zi konventsiyalarni qabul qilamiz:
Endi, mening qiziquvchan do'stlarim, siz nafaqat ikkilik kod nima ekanligini, balki u orqali shifrlangan ma'lumotni qanday aylantirishni ham bilasiz.
Albatta, protsessor qurilmalari tomonidan ikkilik kodni o'qish algoritmi ancha murakkab. Lekin siz undan xohlagan narsani yozish uchun foydalanishingiz mumkin:
Bundan tashqari, "taqdimot" ning soddaligi tufayli ikkilik ma'lumotlarni yozishning turli usullari mumkin:
Ikkilik kodlashning afzalliklari ma'lumotni istalgan masofaga uzatishning deyarli cheksiz imkoniyatlari bilan to'ldiriladi. Bu kosmik kemalar va sun'iy yo'ldoshlar bilan aloqa qilish usuli.
Shunday qilib, bugungi kunda ikkilik sanoq tizimi biz foydalanadigan elektron qurilmalarning aksariyati tomonidan tushuniladigan tildir. Va eng qizig'i shundaki, hozircha boshqa alternativa ko'zda tutilmagan.
O'ylaymanki, men taqdim etgan ma'lumotlar siz boshlashingiz uchun etarli bo'ladi. Va keyin, agar bunday ehtiyoj paydo bo'lsa, har bir kishi ushbu mavzuni mustaqil o'rganishga chuqurroq kirishi mumkin.
Men xayrlashaman va qisqa tanaffusdan keyin siz uchun o'z blogimda qiziqarli mavzuda yangi maqola tayyorlayman.
O'zingiz aytsangiz yaxshi bo'ladi;)
Ko'rishguncha.