Windows.  Viruslar.  Noutbuklar.  Internet.  Idora.  Utilitalar.  Haydovchilar

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.

Matnni kodlash.

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

  • N - bir xil kuch (ko'p belgilar),
  • b - Bit (qabul qilingan belgining og'irligi).

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.

  • 8 bit har doim 1 bayt deb ataladi:
  • 1 bayt = 8 bit.

Agar siz har bir belgini ikkilik kodga aylantirsangiz, bu kompyuter matn kodi 1 baytni egallaydi.

Matnli ma'lumotlar kompyuter xotirasida qanday ko'rinishi mumkin?

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.

Matnli axborot kompyuter xotirasida qanday ifodalanadi?

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.

Endi har bir belgiga sakkiz bitli ikkilik kodni tayinlash kerakligi haqida savol tug'iladi.

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.

Kompyuter alifbosining barcha belgilariga seriya raqamlari berilgan jadval kodlash jadvali deb ataladi.

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).

ASCII kodlash jadvali tuzilishi

Tartib raqam

Kod

Belgi

0 - 31

00000000 - 00011111

0 dan 31 gacha raqamlari bo'lgan belgilar odatda boshqaruv belgilari deb ataladi.
Ularning vazifasi matnni ekranda ko'rsatish yoki chop etish, ovozli signal berish, matnni belgilash va hokazolarni boshqarishdir.

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.
32-belgi bo'sh joy, ya'ni. matndagi bo'sh joy.
Qolganlarning hammasi ma'lum belgilarda aks etadi.

128 - 255

10000000 - 11111111

Jadvalning muqobil qismi (ruscha).
Kod sahifasi deb ataladigan ASCII kodlar jadvalining ikkinchi yarmi (128 kod, 10000000 dan boshlanib, 11111111 bilan tugaydigan) turli xil variantlarga ega bo'lishi mumkin, har bir variant o'z raqamiga ega.
Kod sahifasi birinchi navbatda lotin tilidan boshqa milliy alifbolarni joylashtirish uchun ishlatiladi. Rus milliy kodlashlarida rus alifbosidagi belgilar jadvalning ushbu qismida joylashtirilgan.

ASCII kodlar jadvalining birinchi yarmi


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.

ASCII kodlar jadvalining ikkinchi yarmi


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.

Kompyuter xotirasida so‘zlar qanday ko‘rinishini tasavvur qilish uchun ASCII jadvalidan foydalanib ko‘raylik.

Kompyuter xotirasida so'zlarning ichki ko'rinishi

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.

Bitlar va baytlar

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.

Kod jadvallari

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


Aryabhata
Kirill alifbosi
yunoncha gruzin
efiopiyalik
yahudiy
Akshara-sankhya Boshqa Bobillik
misrlik
etrusk
Roman
Dunay Boloxona
Kipu
Mayya
Egey
KPPU belgilari Pozitsion , , , , , , , , , , Salbiy pozitsiyali Simmetrik Aralash tizimlar Fibonachchi Pozitiv bo'lmagan Birlik (birlik)

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.

Raqamlarning ikkilik belgilanishi

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.

Butun sonlar

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 raqamlar

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.

Kasr sonlar

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),)

Ikkilik sonlarni qo'shish, ayirish va ko'paytirish

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.

Ikkilik sonlarni o‘nlik sonlarga o‘tkazish

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.

Kasrli ikkilik sonlarni o‘nlik sonlarga o‘tkazish

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

Horner transformatsiyasi

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.

Xorner usuli yordamida sonlarning kasr qismini aylantirish

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

O'nli sonlarni ikkilik sanoqli sistemaga o'tkazish

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 .

Kasrli kasr sonlarni ikkilik sistemaga o'tkazish

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:

  • Kasr ikkilik sanoq sistemasining asosiga ko'paytiriladi (2);
  • Olingan ko'paytmada ikkilik sanoq sistemasida sonning eng muhim raqami sifatida qabul qilingan butun qism ajratiladi;
  • Agar olingan mahsulotning kasr qismi nolga teng bo'lsa yoki kerakli hisoblash aniqligiga erishilsa, algoritm tugaydi. Aks holda, hisob-kitoblar mahsulotning kasr qismida davom etadi.

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

Ilovalar

Raqamli qurilmalarda

Ikkilik tizim raqamli qurilmalarda qo'llaniladi, chunki u eng sodda va quyidagi talablarga javob beradi:

  • Tizimda qancha kam qiymatlar mavjud bo'lsa, ushbu qiymatlar bo'yicha ishlaydigan alohida elementlarni ishlab chiqarish osonroq bo'ladi. В частности, две цифры двоичной системы счисления могут быть легко представлены многими физическими явлениями: есть ток (ток больше пороговой величины) - нет тока (ток меньше пороговой величины), индукция магнитного поля больше пороговой величины или нет (индукция магнитного поля меньше пороговой величины) va hokazo.
  • Elementning holati qanchalik kam bo'lsa, shovqinga qarshi immunitet shunchalik yuqori bo'ladi va u tezroq ishlaydi. Masalan, kuchlanish, oqim yoki magnit maydon induksiyasining kattaligi orqali uchta holatni kodlash uchun siz ikkita chegara qiymati va ikkita komparatorni kiritishingiz kerak bo'ladi.

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.

Inglizcha chora-tadbirlar tizimida

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.

Umumlashtirish

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.

Hikoya

  • 3 va 6 bitli raqamlarga o'xshash 8 trigram va 64 geksagramdan iborat to'liq to'plam qadimgi Xitoyda "O'zgarishlar kitobi" ning klassik matnlarida ma'lum bo'lgan. Geksagrammalarning tartibi o'zgarishlar kitobi, mos keladigan ikkilik raqamlarning qiymatlariga (0 dan 63 gacha) mos ravishda joylashtirilgan va ularni olish usuli 11-asrda xitoylik olim va faylasuf Shao Yong tomonidan ishlab chiqilgan. Biroq, Shao Yun ikki belgili kortejlarni leksikografik tartibda joylashtirgan holda, ikkilik arifmetika qoidalarini tushunganligi haqida hech qanday dalil yo'q.
  • Ikkilik raqamlarning kombinatsiyasi bo'lgan to'plamlar afrikaliklar tomonidan an'anaviy fol ochishda (masalan, Ifa) o'rta asr geomansiyasi bilan birga ishlatilgan.
  • 1854 yilda ingliz matematigi Jorj Bul mantiqqa tatbiq etilgan algebraik tizimlarni tavsiflovchi muhim maqolani nashr etdi, u hozir Boolean algebrasi yoki mantiq algebrasi deb nomlanadi. Uning mantiqiy hisobi zamonaviy raqamli elektron sxemalarni ishlab chiqishda muhim rol o'ynashga mo'ljallangan edi.
  • 1937 yilda Klod Shennon nomzodlik dissertatsiyasini himoya qilish uchun taqdim etdi. Rele va kommutatsiya sxemalarini ramziy tahlil qilish bunda elektron rele va kalitlarga nisbatan mantiqiy algebra va binar arifmetikadan foydalanilgan. Barcha zamonaviy raqamli texnologiyalar asosan Shennon dissertatsiyasiga asoslangan.
  • 1937 yil noyabr oyida Bell laboratoriyasida keyinchalik ishlagan Jorj Stibitz rele asosidagi "Model K" kompyuterini yaratdi. K itchen", yig'ish amalga oshirilgan oshxona), ikkilik qo'shimchani amalga oshirdi. 1938 yil oxirida Bell Labs Stiebitz boshchiligidagi tadqiqot dasturini ishga tushirdi. Uning rahbarligida yaratilgan, 1940-yil 8-yanvarda qurib bitkazilgan kompyuter murakkab sonlar bilan amallarni bajara oldi. 1940-yil 11-sentabrda Dartmut kollejida Amerika matematika jamiyati konferentsiyasida Stibitz teletayp mashinasi yordamida telefon liniyasi orqali masofaviy kompleks raqamlar kalkulyatoriga buyruqlar yuborish qobiliyatini namoyish etdi. Bu telefon liniyasi orqali masofaviy kompyuterdan foydalanishga birinchi urinish edi. Namoyishga guvoh bo'lgan konferentsiya ishtirokchilari orasida Jon fon Neyman, Jon Mauchli va Norbert Viner ham bor edi, ular keyinchalik bu haqda o'z xotiralarida yozganlar.

Shuningdek qarang

Eslatmalar

  1. Popova Olga Vladimirovna. Informatika bo'yicha darslik (aniqlanmagan) .

08. 06.2018

Dmitriy Vassiyarovning blogi.

Ikkilik kod - qaerda va qanday ishlatiladi?

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.

Ikkilik kod nima uchun kerak?

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:

  • To'rt bitli (1011-sonli paragrafdagi misolda bo'lgani kabi) 2^4 = 16 belgi kombinatsiyasini yozishga imkon beradi;
  • Sakkiz bitli (masalan: 0101 0011; 0111 0001). Bir vaqtlar u 2^8 = 256 qiymatni qamrab olganligi sababli dasturlash uchun eng katta qiziqish uyg'otdi. Bu barcha o'nlik raqamlarni, lotin alifbosini va maxsus belgilarni tavsiflash imkonini berdi;
  • O'n olti bitli (1100 1001 0110 1010) va undan yuqori. Ammo bunday uzunlikdagi yozuvlar allaqachon zamonaviy, murakkabroq vazifalar uchun. Zamonaviy protsessorlar 32 va 64 bitli arxitekturadan foydalanadi;

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.

Ikkilik kodlash amalda

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:

  • dastlabki 31 ta belgi boshqaruv belgilaridir (00000000 dan 00011111 gacha). Xizmat buyruqlari, printer yoki ekranga chiqarish, ovozli signallar, matnni formatlash uchun xizmat qilish;
  • quyidagi 32 dan 127 gacha (00100000 – 01111111) lotin alifbosi va yordamchi belgilar va tinish belgilari;
  • qolganlari, 255-gacha (10000000 – 11111111) – muqobil, maxsus topshiriqlar va milliy alifbolarni aks ettiruvchi jadvalning bir qismi;

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:

  • Biz 8 ta belgidan iborat baytni o'ngdan chapga o'qiymiz;
  • Agar oddiy raqamlarda biz birlik, o'nlik, yuzlik raqamlarini ishlatadigan bo'lsak, bu erda (teskari tartibda o'qish) har bir bit uchun "ikki" ning turli darajalari ifodalanadi: 256-124-64-32-16-8- 4-2 -1;
  • Endi biz raqamning ikkilik kodini ko'rib chiqamiz, masalan, 00011011. Tegishli pozitsiyada "1" signal mavjud bo'lganda, biz ushbu bitning qiymatlarini olamiz va ularni odatdagi tarzda jamlaymiz. Shunga ko'ra: 0+0+0+32+16+0+2+1 = 51. Ushbu usulning to'g'riligini kod jadvaliga qarab tekshirishingiz mumkin.

Endi, mening qiziquvchan do'stlarim, siz nafaqat ikkilik kod nima ekanligini, balki u orqali shifrlangan ma'lumotni qanday aylantirishni ham bilasiz.

Zamonaviy texnologiyalar uchun tushunarli til

Albatta, protsessor qurilmalari tomonidan ikkilik kodni o'qish algoritmi ancha murakkab. Lekin siz undan xohlagan narsani yozish uchun foydalanishingiz mumkin:

  • Formatlash opsiyalari bilan matnli ma'lumot;
  • Raqamlar va ular bilan har qanday operatsiyalar;
  • Grafik va video tasvirlar;
  • Tovushlar, shu jumladan eshitish doiramizdan tashqarida;

Bundan tashqari, "taqdimot" ning soddaligi tufayli ikkilik ma'lumotlarni yozishning turli usullari mumkin:

  • Magnit maydonni o'zgartirish orqali;
  • 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.

    Agar xatolikni sezsangiz, matn qismini tanlang va Ctrl+Enter tugmalarini bosing
    UMUSHISH: