Haqiqiy (suzuvchi nuqtali) sonlar tiplari
Haqiqiy sonlar tiplari bunday sonlarning ko‘pchiligining taqdimoti faqat approksimatsiya bo‘lishiga qaramay haqiqiy sonlarni modellashtiradi. Masalan, pi va e (natural logarifm asosi) asosiy sonlaridan hech biri haqiqiy sonlar tiplari ko‘rinishida aniq taqdim etilishi mumkin emas. Ushbu sonlardan hech qaysisi yozuvning hech qanday aniq ko‘rinishida taqdim etila olmaydi. Ko‘pchilik kompyuterlarda haqiqiy sonlar ikkilik kodlarda saqlanadi, bu esa ularni yozish muammosini yanada murakkablashtiradi. Masalan, hattoki o‘nlik kattalik bo‘lgan 0.1 ni ham ikkilik sonlarning aniq bir to‘plami ko‘rinishida taqdim etib bo‘lmaydi. haqiqiy sonlarini qo‘llashning boshqa muammosi arifmetik amallar bajarilishida aniqlikni yo‘qotish hisoblanadi. haqiqiy sonlarni taqdim etish muammolari to‘g‘risida kitobdan (Knuth, 1981) to‘liq bilish mumkin.
Haqiqiy sonlar ilmiy yozuvdan olingan formada mantiss va bosqich ko‘rsatkiqlari kabi taqdim etiladi. Ilgari kompyuterlar haqiqiy kattaliklarni turlicha taqdim etgan, ammo hozirgi paytda ko‘pchilik mashinalar IEEE Floating-Point Standard 754 standarti bilan tavsiflangan formatni qo‘llaydi. Dasturlash tillarini amalga oshirish vositalarini ishlab chiqaruvchilar uskunaviy ta’minot orqali qo‘llaniluvchi har qanday taqdimotni qo‘llaydi. Dasturlash tillarining ko‘pchiligi haqiqiy sonlarning ikki tipini saqlaydi, float va double. float tipli o‘zgaruvchilar xotiraning to‘rt baytiga teng bo‘lgan standart o‘lchamga ega. double tipidan o‘lcham jihatdan katta mantissalar talab qilinuvchi sohalarda foydalaniladi. O‘zgaruvchilarning ushbu tiplariga tegishli yozuvlar, odatda, ikki marta katta xotirani egallaydi va mantissada minimum ikki marta ko‘p bitlarga ega.
Haqiqiy sonlar yordamida taqdim etish mumkin bo‘lgan ko‘pgina kattaliklar ularning aniqlishi hamda diapazoni orqali aniqlanadi. Son aniqligi – bu uning mantissasining aniqligi bo‘lib, u bitlar soni bilan o‘lchanadi, diapazon tushunchasiga esa mantissa o‘zgarishi diapazoni va bosqich ko‘rsatkichi o‘zgarish diapazoni kiradi.
Ba’zi kichik kompyuterlarning uskunaviy ta’minoti haqiqiy amallarni o‘zida saqlamaydi. Bunday mashinalarda ushbu amallar dasturiy ta’minot yordamida modellashtiriladi, bu esa 10100 marta ularning bajarilishini sekinlashtiradi.
O‘nli sonlar
Ko‘pgina yirik kompyuterlar, kommersiya ilovalari uchun ishlab chiqarilgan bo‘lib, o‘nli sonlar tiplarini qo‘llovchi uskunaviy ta’minotga ega. Bunday tipli ma’lumotlarga chekli o‘nli sonlar va o‘nli nuqtadan iborat bo‘lib, ular o‘rnatilgan joyida bo‘ladi va butun qismdan kasr qismini ajratadi. Bunday tipli ma’lumotlar kommersiya ilovalarida asosiy hisoblanadi, shuning uchun ular COBOL tilining asosini tashkil qiladi.
O‘nli sonlarning ( haqiqiy tiplardan farqli ravishda) afzalliklari shundaki ular, o‘nli kattaliklarning aniq qiymatiga ega, bu albatta, chekli diapazonda bo‘ladi. Ularning kamchiliklari bosqich ko‘rsatkichi yo‘qligi sabab o‘zgaruvchilarning o‘zgarish diapazonining cheklanganligi va ularni xotirada taqdim etishda isrofgarchilikka yo‘l qo‘yilishi hisoblanadi.
O‘nli sonlar, belgilar satri kabi, xotirada o‘nli shifrlarning ikkilik kodlari orqali yoziladi. Bunday taqdimotlar ikkilik kodlangan o‘nli sonlar (BCD – binary-coded decimal). Ba’zi hollarda o‘nli kattaliklar 1 baytga bir shifr ko‘rinishida beriladi, boshqalarida esa bayt ikkita shifrga ega. Buni misolda ko‘rsatamiz. O‘nlik shifrni kodlashtirish eng kamida 4 bit talab qiladi. Natijada, kodlangan olti razryadli o‘nlik sonni saqlash uchun 24 bit xotira kerak bo‘ladi. Buni ikkilik ko‘rinishda saqlash atigi 20 bit talab qiladi. O‘nlik kattaliklar ustida amallar mashinalarning uskunaviy ta’minoti orqali amalga oshiriladi yoki dasturiy ta’minot orqali modellashtiriladi.
Do'stlaringiz bilan baham: |