2
15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
1.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(-2
15
) dan 32767(2
15
-
1)gacha bo‘ladi va ularni xotirada saqlash uchun 2 bayt; LongInt teridagi sonlar diapazoni
-2
31
dan 2
31
-1 gacha va ularni xotirada saqlash uchun 4 bayt; Word turidagi sonlar
diapazoni 0 dan 65535(2
16
-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 37
10
=100101
2
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: 0025
16
va 00000025
16
.
Manfiy sonni qo‘shimcha kodi quyidagicha hosil qilinadi:
1)
Berilgan sonni musbatini to‘g‘ri kodi yoziladi;
2)
to‘gri kod inversilanadi, yani 0 raqami 1 bilan, 1 raqami 0
bilan almashtiriladi;
3)
inversiya ko‘rinishga 1 qo‘shiladi.
Masalan, LongInt tipidagi -37 sonini qo‘shimcha kodini hosil qilaylik:
1)
37 ni to‘g‘ri kodi 00000000000000000000000000100101;
2)
inversiyasi 11111111111111111111111111011010;
3)
qo‘shimcha kod 11111111111111111111111111011011 yoki FFFFFFDB
16
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:
1)
Berilgan koddan 1 ni ayiriladi;
2)
Kod inversiyalanadi;
3)
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.
a)
0000000000010111
2
3
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.
10111
2
=1*2
4
+0*2
3
+1*2
2
+1*2
1
+1*2
0
=16+4+2+1=23
10
b)
1111111111000000
2
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: 1111111111000000
2
– 1
2
= 1111111110111111
2
;
2) Kodni inversiyalaymiz: 0000000001000000
2
3) Inversiyalangan kodni 10 li sanoq sistemasiga o‘tkazamiz
va hosil qilingan sonni
manfiy ishora bilan yozamiz:
1000000
2
=1*2
6
+0*2
5
+0*2
4
+0*2
3
+0*2
2
+0*2
1
+0*2
0
=64
10
Demak, javob -64
10
.
Do'stlaringiz bilan baham: