6.4. O’N OLTILIK SANOQ TIZIMI
Matematik hisoblashlarda uzun ikkilik sonlardan foydalanish noqulay hamda yozishda xatoliklarga ko’p yo’l qoyiladi.Shu sabab uzun ikkilik sonni 4 bitli guruhlarga bo’lib chiqish mumkin. Harbirguruh 24=16 ko’rinishidag isonlar kombinatsiyasiga ega bo’ladi. Aynan shuning uchun ko’pincha sanoq tizimi bilan ishlashda bu yo’nalish qulay hamda 16 lik sanoq tizimi deb nomlanadi1.O’n oltilik sonlarni yozish uchun 0-9 bo’lgan raqamlar va A-F gacha bo’lgan harflar ishlatiladi (6.2-jadval). O’n oltilik sonlarda har bir pozitsiyadagi sonning ko’rinishi quyidagicha o’zgaradi:
1, 16, 162 (yoki 256), 163 (yoki 4096) va hokazo.
Jadval 6.2 O’n oltilik sanoq tizimi
6.3 – rasm. O’n oltilik sonni o’nlik songa o’tqazish
Misol 6.3 O’n oltilik sonni ikkilik songa o’tqazish.
2ED16 sonini ikkilik songa aylantiring
Yechish: O’n oltilik sonni ikkilik songa yoki teskarisi ikkilik sonni o’n oltilik songa o’zgartirish juda oson. Har bir o’n oltilik son 4-razryadli ikkilik songa mos ravishda yoziladi. 216=00102, E16=11102 va D16=11012, shunga ko’ra 2ED16=0010111011012 bo’ladi. O’nlik songa o’zgartirish uchun bir muncha hisoblashlar bajariladi.
2ED16=2*162+E*161+D*160=74910
Misol 6.4 Ikkilik sonni o’n oltilik songa o’tqazish.
11110102 sonni on oltilik songa o’tqazish.
Yechish: Bu juda onson. O’n tomondan boshlaylmiz. Oxirgi to’rta bit 10102 =A16 teng. Kelgusi bitlar 1112 =716 teng. Qaeyrda 11110102 =7A16 teng.
O'nlik sanoq tizimidan quyi sanoq tizimiga o’tkazish qoidasi:
O’nlik sanoq tizimidagi son o’tkazilishi lozim bo'lgan sanoq tizimining asosiga ketma-ket bo'linadi, va bu jarayonni toki bo'linma bo'luvchidan kichik bo'lgunga qadar davom ettiriladi va hosil qilingan qoldiq hadlar bo'linmadan boshlab chapdan o’ngga qarab tartiblanadi.
Misol 6.5 O’nlik sonni o’n oltilik va ikkilik songlarga o’tqazish.
13510 O’nlik sonni o’n oltilik va ikkilik songlarga o’tqazish.
135(10) X(16) 135(10) X(2)
135
|
16
|
|
135
|
2
|
|
|
|
|
|
|
128
|
8
|
|
134
|
67
|
2
|
|
|
|
|
|
7
|
|
|
1
|
66
|
33
|
2
|
|
|
|
|
|
|
|
|
1
|
32
|
16
|
2
|
|
|
|
|
|
|
|
|
1
|
16
|
8
|
2
|
|
|
|
|
|
|
|
|
0
|
8
|
4
|
2
|
|
|
|
|
|
|
|
|
0
|
4
|
2
|
2
|
|
|
|
|
|
|
|
|
0
|
2
|
1
|
|
|
|
|
|
|
|
|
|
0
|
|
X(16)=87 X(2)=1000111
O’nlik kasrni quyi sanoq tizimiga o’tkazish qoidasi. O’nlik sanoq tizimidagi kasr sonni quyi sanoq tizimining asosiga berilgan o’nlik kasr ketma-ket ko’paytiriladi va hosil bo'lgan sonning butun qismi verguldan keyin ketma-ket olinadi.
0,63(10) X(2)
0
|
63*2
|
1
|
26*2
|
0
|
52*2
|
1
|
04*2
|
0
|
08*2
|
0
|
016
|
X(2)= 0,10100
Ikkilik sanoq tizimidan o’nlikka va o’n oltilikdan o’nlikka o’tkazish qoidalari.
Masalan: 10000111,100(2) - X(10)
X(10) =1*27 +1*22 + 1*21 +1*20 +1*2-1 = 128 + 4 + 2 + 1 + 0,5 = 135,5(10)
207,4(16)X(10)
X(10) =2*162 +0*161 + 7*160 +4*16-1 = 512+7+0,25 = 519,25(10)
6.5. BAYT, YARIM BAYT
Sakkiz bitdan tashkil topgan guruh bir bayt (byte) deyiladi1.Bayt 28=256 ko’rinishidagi sonlar pozitsiyasini o’z ichiga oladi.Kompyuter xotirasida saqlanadigan modullar o’lchami odatda baytlarda o’lchanadi bitda emas.
To’rt bitdan iborat guruh yarim bayt (nibble) deyiladi.Yarim bayt 24=16 kabi sonlar kombinatsiyasiga ega.Hozirgi vaqtda yarim baytdan ko’p foydalanilmaydi.
Mikroprotsessor ma’lumotlarni to’liqligicha hisoblamaydi, u so’zlardan iborat katta bo’lmagan bloklarda malumotlarni qayta ishlaydi.Wors so’zining o’lchami bir martalik o’lcham hisoblanmaydi, uning o’chami har bir protsessorning arxitekturasiga qarab belgilanadi.Masalan 64 bitli protsessorlar ma’lumotlarni 64 bitli o’lchamda bloklab (so’zlab) qayta ishlaydi.
6.4 – rasm.Bit va baiyt mazmunlari
Muvofaqiyatli mos kelish natijasida 210=1024=103 ko’rinish bizga 210 ni qisqartirib yozish uchun kilo (grekcha ming) so’zini ishlatish imkonini beradi. Masalan, 210 bayt – bu bir kilobayt (1 KB).Shu tariqa mega (grekcha million) 220=106, Giga (grekcha milliard) esa 230=109 ko’rinishida bo’ladi.
Misol 2.6 Ikkilik darajasini baholash
224 taqribiy qiymatini kalkulyatirsiz toping
Yechim: 224=220*24 .220=1 million. 24=16. Demak, 224=16 million.Aniq qilib aytganda 224 =16 777 216.
1024 baytni kilobayt (KB) deyilganidek 1024 bitni ham kilobit deyiladi (Kb yoki kbit). Umuman olganda, MB, Mb, GB va Gb qisqartmalari million va milliard baytlar hamda bitlar qiymatlarini qisqartirish uchun belgilangan. Xotiradagi malumotlar odatda baytlarda o’lchanadi.Ma’lumotlarni uzatish tezligi esa bitlarda o’lchanadi ya’ni bit/sekund.Masalan telefon modemlardagi eng yuqori tezlik 56 kilobit sekund bo’lishi mumkin.
6.6. IKKILIK SONLARNI QO’SHISH
Ikkilik sonlarni qo’shish o’nlik sonlarni qo’shish kabi bajariladi va bu undan ko’ra osonroq ham.(Rasm6.5)1. O’nlik sonlarni qo’shishdagi kabi, agar ikki sonni qo’shganda yig’indi 1 razryaddan ortsa, u holda 1 ni kengi razryadga otqaramiz. Quyida ikkilik va o’nlik sonlarni qo’shish ifodalangan.
6.5 –rasm. O’nlik va ikkilik sonlarni qo’shish misoli
6.5 (a) Rasmda o’ng taraf birinchi ustunda 7 va 9 soni turibdi. Ularning yig’indisi 16, ya’ni 9 dan katta, demak bir o’nlik razryaddan katta. Shuning uchun biz javobda birinchi songa 6 (birinchi ustun), 10 ni esa ikkinchi razryad (ikkinchi ustun) ga 1 qilib yozamiz. Shu tariqa ikkilik sonlarni qo’shishda ham agar ikki son yig’indisi 1 dan oshsa, biz 2 ni kengi razryadga 1 qilib o’tqazamiz.
6.5 (b) rasmda ong ustunda, masalan, 1+1=210=102, javob ikkilik razryadga sig’maydi. Shuning uchun birinchi razryadga 0 ni yozib 1 ni esa kengi razryad (ikkinchi ustun)ga yozamiz. Ikkinchi ustunda yana 1+1 va yana kengi razryadga 1 qo’shiladi. Yig’indi 1+1+1=310=112.
Misol 6.7 Ikkilik sonlarni qo’shish
Hisoblang 01112+01012
Yechish.6.6 rasmda yig’indi 11002 ga teng.Qo’shilishi kerak bo’lgan sonlar tepada + 0101 ko’k rangda belgilangan.Ikkilik sonlarni o’nlikka o’tqarib hisoblab chiqamiz.
01112=710, 01012=510. Yig’indi 1210=11002
111
6.6 – rasm. Ikkilik sonlarni qo’shish
Raqamli tizimlar odatda sonlarni oldindan aniqlash va miqdor darajasi qayd qiladi. Vaziyat, qachon qo`shish natijasi unga berilgan daraja(razryad)dan oshsa to`ldirish(overflow) deyiladi. To`rt bitli yacheyka xotirasi, misol uchun, qiymatlarni [0, 15] oralig`ida saqlashi mumkin. Bunday yacheyka agar qo`shish natijasi 15 sonidan oshsa to`ldiriladi. Ushbu holatda qo`shimcha 5-bit olib tashlanadi, natija esa 4-bitda qolgan bo`lsa xato hisoblanadi. To`ldirishni ko`rish mumkin, agar ikkilik sonining katta darajadagi bit ko`chishini kuzatsak (1.8-rasmga qarang), eng katta chap ustuni.
Misol 6.8 Qo`shish to`ldirishdan
11012+01012 hisoblang. To`ldirish bo`ladimi?
Yechimi. 1.10 rasmda yig`indi 100102ga tengligi ko`rsatilgan.
Natija 4 bitli ikkilik sonning chegarasidan chiqib ketadi. Agar uni 4 bitda eslab qolish kerak bo`lsa, eng katta ma`noga ega bit yo`qoladi, noto`gri natija 00102 ni qoldirib.
6.7. IKKILIK SONLARNING BELGISI
Biz hozirgacha ikkilik sonlarni begisiz ko’rib chiqdik, ya’ni faqat musbat ikkilik sonlarni.Ko’p hollarda hisoblashda ham manfiy, ham musbat sonlar ishlatiladi, bunda bizga ikkilik sonning belgisi uchun qo’shimcha razryad kerak bo’ladi.Ikkilik sonlarni belgisini ifodalash yo’llari bir nechta. Eng ko’p ishlatiladigani ikkita: To’g’ri kod (Sign/Magnitude) va Qo’shimcha kod (Two’s Complement).
To`gri kod
Manfiy ikkilik to`g`ri kodlarni foydalanishni tasavvur qilish o`ziga jalb qiladi, modomiki odatiy manfiy sonlarni yozish usuli bilan o`xshasa, qachonki boshida manfiy ishora belgisi ketsa, keyin absolyut son qiymati. Ikkilik son, N bitlardan iborat va to`g`ri kodda yozilgan bo`lsa,eng katta bit belgisining qiymatidan foydalanilsa, qolganlari N-1 biti qolga sonning absolyut yoziladi. A katta bit qiymati 1, unda son musbat. Agar katta qiymat biti 1,unda son manfiy.
6.9-Misol. Sonni to`g`ri kodda soda ko`rsatish
To`gri kodda 5 va -5 sonlarini 4 bitli ko`rinishda yozing.
Yechimi: Ikki son 510 = 1012 absolyut kattalikka ega. Shuning bilan 510 = 01012 va –510 = 11012 . Afsuski, ikkilik sonlar belgisi bilan to`g`ri kodda yozilgan bo`lsa, qo`shishning standart yo`li ishlamayabdi. Misol uchun, −510 + 510 larni oddiy qo`shib, 11012 + 01012 = 100102 ni olamiz. Haqiqatdan bu to`liq bemanilik. Ikkilik o`zgaruvchi uzunligi N bit to`g`ri kodda sonni [−2N−1 + 1, 2N −1 − 1] oraliqda ko`rsatadi. To`g`ri kodning boshqa bir g`alati muhimlig`I +0 va -0 mavjudligi, ushbu ikki son ham birgina nolga mos keladi. Ikkita farqli usullardan ushbu kattalikni xatoliklarni o`z ichiga olishini taxmin qilish qiyinmas.
Ikkilik sonidagi qo`shim kodlar, qo`shimcha koddan foydalanib yozilgan, ikkilik sonlar belgisiz bir xil, bundan tashqari, qo`shimcha kod hodisasida katta bit −2N−1 o`rniga 2N−1 ikkilik son belgisiz. Qo`shimcha kod nol ma`nosini kafolatlaydi va sonlarni qo`shishiga ruxsat beradi, demak to`g`ri kodning kamchiliklaridan qutilgan.
Qo`shimcha kod hodisasida nolli qiymatlar barcha ikkilik sonlarining razryadlarida ko`rsatiladi: 00…0002 . Maksimal musbat qiymati nol ko`rinishida eng katta darajasida ko`rsatilgan va boshqa ikkilik sonlarining darajalarida birlar:
01…1112 = 2N−1 − 1.
Maksimal manfiy qiymatga katta muhim razryadda 1 qiymatga ega va boshqa razryadlarda o ga ega: 10…0002 =−2N−1 . Manfiy bir ikkilik sonning barcha razryadlarida bir bilan ko`rsatilgan : 11…1112 . E`tibor bering barcha musbat sonlarning eng katta razryadi bu - «0», manfiy sonlarda esa bu - «1», ya`ni qo`shimcha kodning ahamiyatli bitini to`g`ri kodning analog qiymatida ko`rib chiqish mumkin. Ammo ushbu o`xshashlik tugaydi, qolgan qo`shimcha kodning bitlari xuddi to`g`ri kod kabi izohlanmaydi.
Qo`shimcha kod hodisasida, manfiy ikkilik sonining belgisi qarama-qarshisiga maxsus operatsiyalar yo`li bilan o`zgaradi, ikkigacha to`ldirish deb ataladi (taking the two’s
complement). Ushbu operatsiyaning mohiyati o`z ichiga ushbu sonning barcha bitlari инвертируются, keyin eng kichik qiymat bitiga 1 qo`shiladi.
Подобная O`xshash operatsiyani ikkilik manfiy son yoki uning absolyut qiymatini aniqlash mumkin.
Misol 6.10 Musbat sonlarning qo’shimcha koddagi ifodasi
-210 sonini qo’shimcha koddai 4 bitli razryaddagi ifodasini toping
Yechim.: +210=00102 dan boshlang. -210 chiqishi uchun bitlarni invertlash va 1 qo’shis kerak. 00102 invertlangan dan keiyin 11012 bo’ladi .11012 +1=11102 .
Demak, -210 11102 teng.
Sanoq tizimlari bilan turli arifmetik amallarni bajarish mumkin. Ikkilik sanoq tizimida qo'shish, ayirish va ko'paytirish amali quyidagicha bajariladi:
Qo'shish
|
Ayirish
|
Ko'paytirish
|
0+0=0
|
0-0=0
|
0*0=0
|
0+1=1
|
1-0=1
|
0*1=0
|
1+0=1
|
1-1=0
|
1*0=0
|
1+1=10
|
10-1=1
|
1*1=1
|
Ikkita sonni qo'shish jadval yordamida bajariladi va qo'shish amali doimo kichik razryadlardan boshlanadi.
Masalan: 1101,01
+ 11,11
10001,00
Ikkilik sanoq tizimida ayirish amali xuddi o'nlik sanoq tizimidagidek bajariladi. Kamayuvchi son ayiriluvchidan kichik bo'lsa, u holda katta razryaddan qarz olinadi. Qarz olingan bir ushbu razryadning ikkita biriga tengdir.
Masalan: 11001,01 Tekshiramiz:
- 11,10 10101,11
10101,11 + 11,10
11001,01
Ikkilik sanoq tizimida ko'paytirish amalini ko'p marotaba qo'shish, bo'lish amalini esa ko'p marotaba ayirishdek qarash mumkin. 16 tilik sanoq tizimida qo'shish va ayirish amallari quyidagi jadval yordamida bajariladi.
+
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
А
|
В
|
С
|
D
|
E
|
F
|
0
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
А
|
В
|
С
|
D
|
E
|
F
|
1
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
А
|
В
|
С
|
D
|
E
|
F
|
10
|
2
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
А
|
В
|
С
|
D
|
E
|
F
|
10
|
11
|
3
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
А
|
В
|
С
|
D
|
E
|
F
|
10
|
11
|
12
|
4
|
4
|
5
|
6
|
7
|
8
|
9
|
А
|
В
|
С
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
5
|
5
|
6
|
7
|
8
|
9
|
А
|
В
| |
Do'stlaringiz bilan baham: |