Komp’yuterda ma’lumotlar asosan baytlarda ifodalanadi. Masala xarakteriga ko’ra, u kodlangan turli tipdagi ma’lumotlarni ko’rsatadi.
Bir baytda ifodalash mumkin bo’lgan butun sonlar diapazoni 8 ta nol va birlarning kombinatsiyasi, ya’ni 28=256 bilan chegaralanadi. Ikki bayt bilan esa 0 dan 216=65536 gacha butun sonlarni yozish mumkin. Undan katta sonlarni saqlash uchun 4 bayt (32 bit) talab qilinadi.
Mashina so’zi, ya’ni ikki bayt ma’lumotning razryadlari (bitlari) chapdan o’ng tomonga qarab nomerlanadi:
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
2.Butun son ko’rinishdagi ma’lumotlarni kompyuter xotirasida tasvirlanishi. Komp’yuter xotirasida sonlarni ikki xil o’lchamda ifodalash mumkin. Ularning birinchisi butun sonlar uchun, ikkinchisi esa haqiqiy sonlar uchun qo’llanadi.
Kompyuter xotirasida ifodalash mumkin bo’lgan sonlarning diapazoni chegaralangan. Bu chegara sonlarni saqlash uchun mo’ljallangan xotira hajmi bilan belgilanadi. 2.Butun sonlarni kompyuter xotirasida ifodalashni boshqa usuli – qo’shimcha kodlash usuli deyiladi. Kodlanuvchi sonlar diapazoni ularga xotiradan ajratilgan bitlar soniga bog’liq. Masalan, Integer turidagi sonlar diapazoni -32768(-215) dan 32767(215-1)gacha bo’ladi va ularni xotirada saqlash uchun 2 bayt; LongInt teridagi sonlar diapazoni -231 dan 231 -1 gacha va ularni xotirada saqlash uchun 4 bayt; Word turidagi sonlar diapazoni 0 dan 65535(216-1) va ularni xotirada saqlash uchun 2 bayt joy ajratiladi.
Yuqoridagi sonlar turidan ko’rinib turibdiki, qiymatlar ishorali va ishorasiz deb qabul qilinishi mumkin. Agar qiymat ishorasi bilan tasvirlangan ko’rinishda bo’lib eng chapdagi (katta)razryad 0 bo’lsa, son musbat, agar 1 bo’lsa manfiy ekanligini bildiradi.
Razryadlar 0 dan boshlab o’ngdan chapga tartiblanadi. Quyidagi rasmda 2 baytli mashina so’zini tartiblash keltirilgan.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Musbat sonni qo’shimcha kodi uni to’g’ri kodi bilan bir xil bo’ladi. Butun sonni to’g’ri kodi quyidagicha hosil qilinadi: berilgan son ikkili sanoq sistemasiga o’tkaziladi, keyin bu son qaysi turga tegishli bo’lsa, uni ikkili sanoq sistemasida ko’rinishini chap tomoni razryad to’lguncha 0 raqami(son qiymati o’zgarmaydi) bilan to’ldiriladi.
Masalan, agar 3710 =1001012 soni Integer turiga tegishli deb e’lon qilingan bo’lsa, uni to’gri kodi 0000000000100101, agar LongInt turiga tegishli deb e’lon qilingan bo’lsa, uni to’gri kodi 00000000000000000000000000100101 bo’ladi. Ko’proq, hosil qilingan kodlarni ixchamroq yozish uchun 16li sanoq sistemasidan foydalaniladi.Yuqorida hosil qilingan kodlarni 16li sanoq sistemasida quyidagicha yoziladi: 002516 va 0000002516.
Manfiy sonni qo’shimcha kodi quyidagicha hosil qilinadi:
Berilgan sonni musbatini to’g’ri kodi yoziladi;
to’gri kod inversilanadi, yani 0 raqami 1 bilan, 1 raqami 0 bilan almashtiriladi;
inversiya ko’rinishga 1 qo’shiladi.
Masalan, LongInt tipidagi -37 sonini qo’shimcha kodini hosil qilaylik:
37 ni to’g’ri kodi 00000000000000000000000000100101;
inversiyasi 11111111111111111111111111011010;
qo’shimcha kod 11111111111111111111111111011011 yoki FFFFFFDB16
Sonni qo’shimcha kodi berilgan bo’lsa, uni 10 li sanoq sistemasidagi ko’rinishga o’tkazish uchun avvalo uni ishorasi aniqlanadi. Agar son musbat bo’lsa, berilgan kodni to’g’ridan to’g’ri 10 li sanoq sistemasiga o’tkaziladi. Son manfiy bo’lsa, u quyidagicha hosil qilinadi:
Berilgan koddan 1 ni ayiriladi;
Kod inversiyalanadi;
Inversiyalangan kod 10 li sanoq sistemasiga o’tkaziladi va hosil qilingan son manfiy ishora bilan yoziladi.
Misol: Quyidagi kodlarga mos 10 li sanoq sistemasidagi sonlarni aniqlang.
00000000000101112
Bu kodni eng katta razryadi 0. Bu esa hosil bo’ladigan son musbat ekanligini bildiradi. Shuning uchun to’g’ridan to’g’ri uni 10 li sanoq sistemasiga o’tkazamiz.
101112=1*24+0*23+1*22+1*21+1*20=16+4+2+1=2310 11111111110000002
Bu misolda kodni eng katta razryadi 1. Bu esa hosil bo’ladigan son manfiy ekanligini bildiradi. Yuqorida keltirilgan usulni qo’llaymiz
1) Berigan koddan 1 ni ayiramiz: 11111111110000002 – 12= 11111111101111112 ;
2) Kodni inversiyalaymiz: 00000000010000002 3) Inversiyalangan kodni 10 li sanoq sistemasiga o’tkazamiz va hosil qilingan sonni manfiy ishora bilan yozamiz:
10000002=1*26+0*25+0*24+0*23+0*22+0*21+0*20=6410 Demak, javob -6410.
3.Haqiqiy son ko’rinishdagi ma’lumotlarni kompyuter xotirasida tasvirlanishi.Kompyuter xotirasida haqiqiy sonlarni tasvirlash usuli boshqacharoq. Suzuvchi nuqtali haqiqiy sonlarni kompyuter xotirasida tasvirlanishini ko’rib chiqaylik.
Ixtiyoriy haqiqiy sonni M∙10 p ko’rinishda yozish mumkin, bu yerda, M - sonni mantis-sasi (1≤M<10) va p- esa sonni tartibi( butun son) deyiladi. Masalan,120100000=1,201∙108. 10 li sanoq sistemasida sonlarni har bir raqamini o’rni qo’shni xonadaga raqam o’rnidan 10 ni darajasiga boqliq holda farqlanadi. Shuning uchun sonni 10 ga ko’paytirish deganda, sondagi vergulni o’ngga bir pozisiya surish, 10 ga bo’lish deganda esa vergulni chapga bir pozisiya surish tushuniladi. Yuqoridagi misolni quyidagicha davom ettirish mumkin:
120100000=1,201∙108=0,1201∙109=12,01∙107….
Kompyuterlarda haqiqiy sonlarni suzuvchi nuqtali ko’rinishda ifodalashda, maksimal aniqlikga erishish sonni mantissasi 110≤M<210 oraliqda bo’lishi kerak. Bundan ko’rinib turibdiki, 2 li sanoq sistemasida haqiqiy sonlarni ifodalashda suzuvchi vergul fiksirlangan bo’ladi, yani vergul birinchi raqamdan(0 yoki 1 dan) keyin keladi.
Kompyuterlarda haqiqiy sonlarni suzuvchi nuqtali ko’rinishda tasvirlash uchun ularga ajratilgan joy uch qismdan iborat bo’ladi. 1-qismda sonni ishorasi uchun bir katak joy, 2-qismda sonni tartibi uchun joy(nechta kataklilgi sonni turiga bog’liq), 3-qismda sonni mantissasi uchun joy ajratiladi.
Double turiga tegishli haqiqiy sonlarni kompyuter xotirasida qanday joylashishini ko’rib chiqaylik. Yuqoridagi jadvaldan ko’rinib turibdiki, bu turdagi haqiqiy sonlar uchun xotiradan 2 bayt joy ajratiladi. Joylarni qismlarga bo’linishi quyidagicha:
Ishora
Aralash tartib
Mantissa
63 62 52 51 0
Son tartibini xotirada saqlash uchun uning o’nli sanoq sistemasidagi tartibiga surilish miqdori qo’shiladi. Masalan, Double tipidagi son uchun tartib 11 bitni egallaydi va diapazoni dan gacha bo’ladi.
SHunday qilib, haqiqiy sonlar komp’yuter xotirasida quyidagi algoritm asosida ifodalanadi:
1) son modulini ikkilik sanoq sistemasiga o’tkaziladi:
2) hosil qilingan son normallashtiriladi, ya’ni ko’rinishida yoziladi. Bu erda m-mantissa bo’lib, butun qismi 12 ga teng. p — o’nli sanoq sistemasida yozilgan tartib.
3) tartibga surilish miqdori qo’shiladi va hosil qilingan son ikkilik sanoq sistemasiga o’tkaziladi;
4) ishorasini e’tiborga olib, sonning komp’yuter xotirasidagi ko’rinishi yoziladi.