IlmHamroh
JavaScript Full-stack/1-qism. Kompyuter, fayllar va terminal2/40-dars11 daqiqa
Mundarija (25)

Ikkilik sanoq sistemasi: nega kompyuter faqat 0 va 1 raqamlarini tushunadi

Qisqacha: Kompyuter ichidagi milliardlab tranzistorlarning faqat ikki holati bor: tok bor (1) yoki tok yo'q (0). Shuning uchun kompyuter har qanday son, matn va rasmni faqat 0 va 1 bilan yozadi — bu ikkilik sanoq sistemasi. Bitta 0 yoki 1 — bit, 8 ta bit — 1 bayt.

Bu darsda

  • Kompyuter nega 10 ta raqam emas, faqat 0 va 1 bilan ishlashini tushunasiz.
  • Tranzistor nima ekanini chiroq kaliti misolida bilib olasiz.
  • Bit va bayt nima ekanini hamda 2 ning darajalari qayerdan kelishini bilasiz.
  • Ikkilikda sanashni va ikkilik sonni o'nlikka o'tkazishni o'rganasiz.
  • O'nlik sonni ikkilikka ikki xil usulda o'tkaza olasiz.

Oldin bilishingiz kerak: Kompyuter nima: apparat va dastur. Maktabdagi oddiy ko'paytirish va bo'lish yetarli.

1. Nega bu kerak?

Biz bolalikdan 10 ta raqam bilan hisoblaymiz: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Sababi oddiy — qo'limizda 10 ta barmoq bor. Bu sanoq usuli o'nlik sanoq sistemasi deyiladi.

Kompyuterning esa barmoqlari yo'q. U qog'ozdagi yozuvni ko'rmaydi. Uning ichida faqat elektr toki yuradi.

Tasavvur qiling: qorong'i kechada uzoqdagi tepalikda turgan do'stingizga fonar bilan xabar bermoqchisiz.

Agar siz "Fonarni 10 xil yorug'likda yoqaman: sal xira — 1, sal yorug'roq — 2, o'rtacha — 3..." desangiz, do'stingiz uzoqdan bu darajalarni ajrata oladimi? Yo'q. Tuman bo'ladi, chang bo'ladi, 6 bilan 7 aralashib ketadi.

Endi boshqacha kelishuv qilaylik:

  • Fonar yoniq — 1.
  • Fonar o'chiq — 0.

Bu xabarni hatto kuchli shamolda ham adashmasdan o'qish mumkin. Kompyuterlar aynan shu oddiy va ishonchli g'oya asosida qurilgan.

2. Tranzistor: kompyuterning eng kichik g'ishti

Oldingi darsda ko'rgan protsessor (CPU) ichida o'nlab milliard mitti elektr kalitlari bor. Ular tranzistor deyiladi.

Tranzistor — xonangizdagi chiroq kalitining juda kichik nusxasi. Farqi shundaki, uni qo'l bilan emas, elektr signali bilan yoqib-o'chirishadi. Uning ikki holati bor:

  1. Tok o'tyapti (yoniq) → biz buni 1 deb belgilaymiz.
  2. Tok o'tmayapti (o'chiq) → biz buni 0 deb belgilaymiz.

Nega 10 ta holat emas? Chunki simdagi tok kuchi hech qachon mutlaqo bir tekis bo'lmaydi — doim ozgina tebranadi. 10 xil darajani ajratishga harakat qilsak, bu tebranishlar tufayli 6 ni 7 deb o'qib qo'yish mumkin. "Bor yoki yo'q" ni esa adashtirish qiyin.

Faqat ikki raqamdan (0 va 1) foydalanadigan sanoq usuli ikkilik sanoq sistemasi (binary) deyiladi.

Tekshirib ko'ring: Nega muhandislar kompyuter uchun o'nlik emas, ikkilik sistemani tanlashgan?

Javob

Elektr signalida ikki holatni (tok bor yoki yo'q) ajratish eng ishonchli. Tok kuchi doim ozgina tebranadi. 10 xil darajani ajratishga urinsak, bu tebranishlar xatoga olib kelardi — xuddi uzoqdagi fonarning 10 xil yorug'ligini adashtirgandek.

3. Bit va bayt nima?

3.1 Bit — eng kichik bo'lak

Bit (binary digit — ikkilik raqam) — kompyuterdagi ma'lumotning eng kichik bo'lagi. U faqat 0 yoki 1 bo'la oladi.

Bitta bit bilan faqat ikki narsani ifodalash mumkin: ha/yo'q, yoqiq/o'chiq, to'g'ri/noto'g'ri.

3.2 Bitlar ko'paysa, imkoniyat ham ko'payadi

Bitta bit — 2 xil holat. Ikkita bit-chi? Keling, hammasini sanab chiqamiz: 00, 01, 10, 11 — 4 xil holat.

Uchta bit: 000, 001, 010, 011, 100, 101, 110, 111 — 8 xil holat.

Qonuniyatni ko'ryapsizmi? Har bir yangi bit qo'shilganda holatlar soni 2 barobar ortadi: 2, 4, 8, 16...

Buni qisqa yozish uchun darajadan foydalanamiz. 2³ ("ikkining uchinchi darajasi") — 2 ni uch marta o'ziga ko'paytirish: 2 × 2 × 2 = 8. Qoida: n ta bit bilan 2ⁿ xil holat yozish mumkin.

Bitlar soni Hisob Necha xil holat
1 bit 2¹ 2
2 bit 2² = 2 × 2 4
4 bit (yarim bayt) 2⁴ 16
8 bit (1 bayt) 2⁸ 256

3.3 Bayt — 8 bitlik guruh

Bitta bit juda kichik. Shuning uchun bitlar guruhlanadi — xuddi harflardan so'z yasalgandek.

Bayt (byte) — ketma-ket kelgan 8 ta bit.

text
1 bit:   [ 1 ]
1 bayt:  [ 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 ]   (8 ta bit)

Nega aynan 8? 8 bit bilan 2⁸ = 256 xil qiymat yozish mumkin (00000000 dan 11111111 gacha). Bu lotin harflari, raqamlar va tinish belgilarining hammasiga yetadi. Shuning uchun 8 bit qulay o'lcham bo'lib qoldi va bugun hamma kompyuterda standart.

Kompyuterda hamma narsa baytlar bilan yoziladi. Masalan, A harfi xotirada 01000001 bo'lib turadi. Harflar qanday raqamga aylanishini matn kodlash darsida ko'ramiz.

Tekshirib ko'ring: 3 ta bit bilan nechta xil holat yozish mumkin? 10 ta bit bilan-chi?

Javob

3 ta bit — 2³ = 8 xil holat. 10 ta bit — 2¹⁰ = 1024 xil holat. Har bir bit holatlar sonini 2 barobar oshiradi: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024. 1024 soni keyingi darsda yana chiqadi.

4. O'nlik va ikkilik sanoq sistemalari

4.1 Ikkilikda qanday sanaymiz?

O'nlikda sanaganda 9 dan keyin raqam tugaydi. Shunda chapga yangi xona qo'shamiz va 10 yozamiz.

Ikkilikda xuddi shunday, faqat raqam 1 dan keyinoq tugaydi:

O'nlikda Ikkilikda Nima bo'ldi
0 0
1 1 Raqamlar tugadi
2 10 Yangi xona qo'shildi
3 11
4 100 Yana yangi xona
5 101
6 110
7 111
8 1000 Yana yangi xona

Ikkilikdagi 10 "o'n" emas, "bir-nol" deb o'qiladi va u ikki degani.

4.2 Xona qiymatlari

O'nlikda har bir xona o'zidan o'ngdagisidan 10 barobar katta. Masalan, 347:

  • 3 × 100
  • 4 × 10
  • 7 × 1
  • Jami: 300 + 40 + 7 = 347.

Ikkilikda esa har bir xona o'ngdagisidan 2 barobar katta. O'ngdan chapga qarab: 1, 2, 4, 8, 16...

text
Xona qiymati:   128   64   32   16    8    4    2    1
Daraja:          2⁷   2⁶   2⁵   2⁴   2³   2²   2¹   2⁰

2⁰ = 1 — har qanday sonning nolinchi darajasi 1 ga teng, bu matematik kelishuv. Eng o'ngdagi xona — "birlar" xonasi.

4.3 Ikkilik sonni o'nlikka o'tkazish

Keling, 1011 sonini o'nlikka aylantiramiz. Har raqamni o'z xona qiymatiga ko'paytiramiz:

Xona qiymati Raqam Ko'paytma
8 1 1 × 8 = 8
4 0 0 × 4 = 0
2 1 1 × 2 = 2
1 1 1 × 1 = 1

Qo'shamiz: 8 + 0 + 2 + 1 = 11. Demak, ikkilikdagi 1011 = o'nlikdagi 11.

Qisqa yo'l: faqat 1 turgan xonalarning qiymatini qo'shing. 0 turgan xonalar hech narsa qo'shmaydi.

Yana bir misol, 1101:

  • 1 × 8 = 8
  • 1 × 4 = 4
  • 0 × 2 = 0
  • 1 × 1 = 1
  • Jami: 8 + 4 + 0 + 1 = 13.

O'zingiz to'ldiring: ikkilikdagi 0101 soni o'nlikda ga teng.

4.4 O'nlikdan ikkilikka: 1-usul — 2 ga bo'lish

Sonni 0 qolguncha 2 ga bo'lib boramiz. Har safar qoldiqni (0 yoki 1) yozib qo'yamiz. Masalan, 13:

Bo'lish Butun qismi Qoldiq
13 ÷ 2 6 1
6 ÷ 2 3 0
3 ÷ 2 1 1
1 ÷ 2 0 1

Endi qoldiqlarni pastdan tepaga o'qiymiz: 1101.

Tekshiramiz: 8 + 4 + 0 + 1 = 13. To'g'ri!

4.5 O'nlikdan ikkilikka: 2-usul — xonalarni to'ldirish

Bu usul kichik sonlar uchun tezroq. Xona qiymatlarini (1, 2, 4, 8, 16, 32...) yozib olamiz va sonni ularning yig'indisiga bo'lamiz.

Masalan, 20:

  1. 20 dan kichik yoki teng eng katta xona — 16. Yozamiz: 16. Qoldi: 20 − 16 = 4.
  2. 4 dan kichik yoki teng eng katta xona — 4. Qoldi: 4 − 4 = 0. Tamom.
  3. Demak, 20 = 16 + 4.

Endi 16 va 4 xonalariga 1, qolganlariga 0 qo'yamiz:

text
Xona:     16   8   4   2   1
Raqam:     1   0   1   0   0

Natija: 10100.

Tekshirib ko'ring: 110 ikkilik soni o'nlikda nechaga teng? O'nlikdagi 7 soni ikkilikda qanday yoziladi?

Javob

110 = 4 + 2 + 0 = 6 (faqat 1 turgan 4 va 2 xonalarini qo'shdik). 7 = 4 + 2 + 1, demak ikkilikda 111. Jadvaldagi sanash bilan ham tekshirsa bo'ladi.

4.6 Son qaysi sistemada yozilgan?

10 — bu o'n mi yoki ikki? Yozuvning o'zidan bilib bo'lmaydi. Shuning uchun kitoblarda ikkilik son kichik indeks bilan belgilanadi: 10₂ = 2, 10₁₀ = 10.

Dasturlash tillarida esa ikkilik son oldiga 0b qo'yiladi: 0b1011 — bu ikkilikdagi 11. Buni JavaScript darslarida uchratasiz, hozir yodlash shart emas.

5. Ko'p uchraydigan xatolar

5.1 Chapdan boshlab hisoblash

Eng kichik xona (1) har doim eng o'ngdagi raqamga tegishli. Ko'pchilik chapdan boshlab "1, 2, 4..." deb yozadi va hisob chalkashadi. Har doim o'ngdan boshlang: 1, 2, 4, 8, 16.

5.2 Qoldiqlarni teskari tartibda o'qish

2 ga bo'lish usulida qoldiqlar pastdan tepaga o'qiladi. Tepadan pastga o'qisangiz, 13 uchun 1101 o'rniga 1011 (ya'ni 11) chiqadi. Natijani doim teskari yo'l bilan tekshiring.

5.3 Ikkilik sonda 2 raqamini ishlatish

Ikkilikda faqat ikki raqam bor: 0 va 1. 1021 kabi yozuv ikkilik son bo'la olmaydi.

5.4 Boshidagi nollardan qo'rqish

0101 va 101 — bitta son (5). Chap tomondagi nollar qiymatni o'zgartirmaydi, xuddi o'nlikda 007 = 7 bo'lgani kabi. Baytni to'liq 8 xonada ko'rsatish uchun ular ko'pincha qo'shib yoziladi: 00000101.

6. Mashqlar

1-mashq (oson): Ikkilikdan o'nlikka

Quyidagi sonlarni o'nlikka aylantiring:

  1. 0011
  2. 0110
  3. 1000
Yechim
  1. 0011 = 0 × 8 + 0 × 4 + 1 × 2 + 1 × 1 = 3.
  2. 0110 = 0 × 8 + 1 × 4 + 1 × 2 + 0 × 1 = 6.
  3. 1000 = 1 × 8 + 0 × 4 + 0 × 2 + 0 × 1 = 8.

2-mashq (o'rta): O'nlikdan ikkilikka

Quyidagi sonlarni ikkilikka o'tkazing. Istalgan usuldan foydalaning (2 ga bo'lish yoki xonalarni to'ldirish).

  1. 9
  2. 15
  3. 20
Yechim

Xonalarni to'ldirish usuli bilan:

  1. 9 = 8 + 1 → 1001.
  2. 15 = 8 + 4 + 2 + 1 → 1111.
  3. 20 = 16 + 4 → 10100.

2 ga bo'lish bilan ham tekshirib ko'ring. Masalan, 9: 9 ÷ 2 = 4 (qoldiq 1), 4 ÷ 2 = 2 (0), 2 ÷ 2 = 1 (0), 1 ÷ 2 = 0 (1). Pastdan tepaga: 1001.

3-mashq (qiyin): 1 baytning chegaralari

Bitta baytda 8 ta bit bor.

  1. 1 baytga sig'adigan eng kichik son qaysi? U o'nlikda nechaga teng?
  2. Eng katta son 11111111 o'nlikda nechaga teng?
  3. Nega bayt 256 xil qiymat saqlaydi, lekin eng katta qiymati 256 emas?
Yechim
  1. Eng kichigi — 00000000, o'nlikda 0.
  2. 11111111 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255.
  3. Chunki sanash 0 dan boshlanadi. 0, 1, 2, ..., 255 — bu jami 256 ta son. Xuddi 1 dan 10 gacha 10 ta son bo'lgani kabi, 0 dan 255 gacha 256 ta son bor.

Maslahat: Javobingizni kompyuterda tekshirishingiz mumkin. Windows'dagi Calculator (Kalkulyator) ilovasini oching, menyudan Programmer rejimini tanlang. DEC qatoriga son kiritsangiz, BIN qatorida uning ikkilik ko'rinishi chiqadi.

7. Real ishda

Dasturchi har kuni sonlarni qo'lda ikkilikka o'tkazib o'tirmaydi — buni kompyuter o'zi qiladi. Lekin 0 va 1 g'oyasi hamma joyda chiqadi:

  • 2 ning darajalari hamma joyda. Telefon xotirasi 64, 128, 256 GB; RAM 8, 16, 32 GB. Bu sonlar tasodifiy emas — hammasi 2 ning darajalari. Keyingi darsda 1024 sonining sirini ochamiz.
  • Ranglar. Ekrandagi har bir nuqtaning rangi uchta sondan iborat: qizil, yashil va ko'k miqdori. Har biri 1 bayt, ya'ni 0 dan 255 gacha. Bu haqda ranglar darsida to'liq gaplashamiz.
  • IP manzil. 192.168.1.1 kabi manzilni Wi-Fi sozlamalarida ko'rgandirsiz. U to'rtta baytdan iborat, shuning uchun har bir bo'lagi 0 dan 255 gacha bo'ladi. Tarmoqni alohida darsda o'rganamiz.
  • Ha/yo'q belgilari. Bitta baytga 8 ta "ha/yo'q" belgisini (masalan, 8 xil ruxsatni) joylash mumkin. Bu usulni sonlar ichkarida darsida ko'ramiz.

Xulosa

  • Kompyuter faqat 0 va 1 bilan ishlaydi, chunki "tok bor yoki yo'q"ni ajratish eng ishonchli.
  • Tranzistor — elektr signali bilan boshqariladigan mitti kalit.
  • Bit — eng kichik bo'lak (0 yoki 1). Bayt — 8 bit, u 0 dan 255 gacha son saqlaydi.
  • n ta bit bilan 2ⁿ xil holat yoziladi: har bir bit imkoniyatni 2 barobar oshiradi.
  • Ikkilikda xona qiymatlari o'ngdan chapga 2 barobar ortadi: 1, 2, 4, 8, 16, 32...
  • O'nlikdan ikkilikka — 2 ga bo'lish yoki xonalarni to'ldirish usuli bilan o'tkaziladi.

Keyingi dars: O'lchov birliklari: KB, MB, GB va internet tezligi — nega 1000 va 1024 chalkashadi va internet tezligi aslida nimani bildiradi.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
Ikkilik sanoq sistemasi: nega kompyuter faqat 0 va 1 raqamlarini tushunadi — IlmHamroh