JavaRush /Java Blogu /Random-AZ /Kompüter yaddaşında həqiqi ədədlər. İzahat.
Marianna
Səviyyə
Москва

Kompüter yaddaşında həqiqi ədədlər. İzahat.

Qrupda dərc edilmişdir
Günortanız Xeyir Birinci kvestin (2-ci bölmə. Üzən nöqtəli ədədlərin strukturu) “Həqiqi ədədlərlə işləməyin nüansları” mühazirəsini və mövzu ilə bağlı əlavə mühazirələri öyrənərkən çoxları bu mövzuda çoxlu suallarla qarşılaşmış olmalıdır. Əvvəlcə özümə lazımi cavablar verməyə çalışdım və indi ardıcıl məntiqi ardıcıllıqla tam başa düşməyinizə kömək etmək üçün onları sizə təklif edirəm. 1. Onluq və ikilik say sistemləri. 1.1 Onluq say sistemi ən çox yayılmış sistemlərdən biridir; məktəbdə, universitetdə, həyatda hər hansı qeyri-kompüter riyazi hesablamalar üçün istifadə etdiyimiz sistemdir. 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 (ərəb) rəqəmlərindən istifadə edir - cəmi 10 rəqəm. Rəqəmlər üçün Roma notu da var, lakin indi praktiki olaraq istifadə edilmir. Onluq sistemində sayma vahidlərlə, onluqlarla, yüzlərlə, minlərlə, on minlərlə, yüz minlərlə, milyonlarla və s. - başqa sözlə desək, bunlar nömrənin bütün rəqəmləridir. Ədədin rəqəmi rəqəmin nömrə qeydindəki mövqeyidir (yeridir ) . Natural ədədlərin ən aşağı rəqəmi (və ən az əhəmiyyətlisi ) vahid rəqəmidir (ən sağda). Niyə o, ən əhəmiyyətsizdir? Çünki ədədin vahid rəqəmini atmaqla rəqəmin özü minimal dəyişəcək (məsələn, 345 və 340 rəqəmləri). Sonra, ikinci rəqəm onlarla rəqəmdir və s. Bütün bunlar nə deməkdir? Onluq sistemdə istənilən tam ədədi götürək və onu rəqəmlərə parçalayaq . 3297 = 3*1000 + 2*100 + 9*10 + 7 Beləliklə, tapırıq ki, 3297 rəqəmində dördüncü rəqəmin 3 vahidi (yəni 3 min), üçüncü rəqəmin 2 vahidi (2 yüz), 9 var. ikinci rəqəmin vahidləri (9 onluq) və birinci rəqəmin 7 vahidi . Başqa sözlə desək, bu rəqəm üç min iki yüz doxsan yeddidir və buna uyğun olaraq mövqedir . Kəsr (real) ədədlərin rəqəmləri haqqında nə demək olar ? Kəsir ədədlərin rəqəmləri (onların kəsr hissəsi) adlanır: onda, yüzdə, mində, on mində və s. Rəqəm onluq nöqtədən (ədədin bütün hissəsindən) nə qədər uzaqdırsa, o qədər az əhəmiyyət kəsb edir (onu atsanız, nömrənin dəyəri az dəyişəcək). Məsələn, ondalıq hissə kimi təqdim olunan hər hansı kəsr ədədini götürək: 25.076 = 2*10 + 5 +0*0.1 + 7*0.01 +6*0.001 Beləliklə, biz tapırıq ki, 25.076 kəsr ədədində 2 onluq, 5 vahid, 0 ondalıq var. , 7 yüzlük və 6 minlik. Onluq sistem 10 rəqəmdən və 10 yerin çoxluğundan istifadə edir - buna görə də "onluq" adı. 1.2 İkili say sistemi demək olar ki, bütün müasir kompüterlərdə və digər hesablama elektron cihazlarında istifadə olunan say sistemidir. Nömrələri qeyd etmək üçün o, yalnız iki rəqəmdən istifadə edir - 0 və 1. Rəqəmin hansı say sistemində yazıldığını çaşdırmamaq üçün onun sağ alt hissəsində göstərici (bu say sisteminin əsasıdır ), üçün misal: 1000₁₀ 1000₂ Burada birinci ədəd onluq sistemdə tanış olan mindir , aşağı isə ikilik sistem təmsilindəki ədəddir və onluq sistemdə bərabərdir... 8 ! Onluq sistem kimi, ikilik sistem də ədədləri rəqəmlərə bölür . İkilik ədəddəki hər bir rəqəmə bit (və ya rəqəm ) deyilir. (Kimsə maraqlıdırsa, dörd bit bir nibble (və ya tetrad), 8 bit bir bayt , 16 bit bir söz , 32 bit ikiqat sözdür ). Bitlər (rəqəmlər) də sıfırdan başlayaraq (onluq sistemdən fərqli olaraq) sağdan sola nömrələnir . Ən az əhəmiyyətli, ən az əhəmiyyətli, sağ bit 0 ardıcıl nömrəsinə malikdir . Sonra birinci bit gəlir , ikinci , və s., bit nə qədər köhnədirsə , bir o qədər əhəmiyyətlidir (anlayırıq onlu sistemlə analogiyaya görə - 1455 rəqəmindən olanları çıxarsanız, 1450 rəqəmi ilə qalacaqsınız. - demək olar ki, ilkin birinə bərabərdir.Lakin yüzlərlələri çıxarsanız, 1050 rəqəmi ilə qalacaqsınız, bu artıq ilkin dəyərdən çox uzaqdır, çünki yüzlər yeri vahidlər yerindən daha əhəmiyyətlidir (yüksək sıralı) ). Misal. HƏLƏ OXUMAYIN :))) Komputer yaddaşında real ədədlər.  İNKİŞAF ALMADA!!!  - 2 Aşağıda bu kəsrli ikilik ədədin bitləri qırmızı rənglə nömrələnmişdir - ümumilikdə bu ədədin 18 biti (rəqəmi) var. İrəliyə baxaraq qeyd etmək istərdim ki, kəsr ədədləri kompüter yaddaşında tamamilə fərqli şəkildə saxlanılır - bu barədə daha sonra danışılacaqdır. Bu arada gəlin ədədləri bir say sistemindən digərinə çevirməyi öyrənək. 2. Tam ədədlərin və kəsrlərin onluq sistemdən ikilik sistemə və əksinə çevrilməsi. 2.1 Onluqdan ikiliyə çevirmə. 2.1.1 Tam ədədlər. Tam onluq ədədi ikilik say sisteminə çevirmək üçün bu ədədi 2-yə bölmək, bölmənin qalan hissəsini yazmaq lazımdır (ədədin cüt və ya tək olmasından asılı olaraq həmişə 0 və ya 1-ə bərabərdir) , və bölmənin nəticəsini yenidən 2-yə bölün, yenidən bölmənin qalığını yazın (0 və ya 1) və ikinci bölgüdən alınan nəticəni yenidən 2-yə bölün.Bölmənin nəticəsi 1-ə bərabər olana qədər bu şəkildə davam edin. Sonra, biz həmişə 1-ə bərabər olan ən son bölgü nəticəsindən başlayaraq bütün əldə edilən sıfırları və birləri tərs qaydada yazırıq . İSTƏNİLƏN BÜTÜNÜN 2-yə ardıcıl bölünməsinin son nəticəsi həmişə bir (1) olacaq! Nəticə 1-dən böyükdürsə, nəticədə bir olana qədər bu nəticəni 2-yə bölməyə davam edirik. Və 2-yə bölmənin nəticəsi yalnız bir halda sıfır (0) ola bilər - bu, sıfırın özünün 2-yə bölünməsidir . Misal. 145 ədədini onluq sistemdən ikilik sistemə çevirək . 145/2 = 72 (qalıq 1 ) 72/2 = 36 (qalıq 0 ) 36/2 = 18 (qalıq 0 ) 18/2 = 9 (qalıq 0 ) 9/2 = 4 (qalıq 1 ) 4/2 = 2 (qalıq 0 ) 2/2 = 1 (qalıq 0 ) İndi biz ikilik ədədimizi tərs qaydada “toplayırıq”. 10010001 nömrəsini alırıq . Bitdi! Maraqlı nüans 1. 1 rəqəmini onluq sistemdən ikilik sistemə çevirək . İkilik sistemdə bu ədəd 1 kimi də yazılacaq.Axı 1-ə bərabər olmalı olan 2-yə bölünmənin son nəticəsi artıq 1-in özünə bərabərdir.1₁₀ = 1₂ Maraqlı nüans 2. Gəlin çevirək. 0 rəqəmi onluq sistemdən ikiliyə qədər. İkili sistemdə bu ədəd 0 kimi də yazılacaq. 0₁₀ = 0₂ 2.1.2 Kəsr ədədlər. Kəsir ədədləri ikiliyə necə çevirmək olar? Onluq kəsri ikilik say sisteminə çevirmək üçün aşağıdakıları etməlisiniz: a) 2.1.1-ci bənddə öyrənilən alqoritmə uyğun olaraq kəsrin bütün hissəsini ikilik sistemə çevirmək b) kəsrin kəsr hissəsini 2-yə vurmaq , yazmaq lazımdır. ondalık nöqtədən ƏVVƏL nəticənin nəticə rəqəmi (həmişə 0 və ya 1-ə bərabərdir, bu məntiqlidir), sonra YALNIZ alınan nəticənin kəsr hissəsini yenidən 2-yə vurun, nəticənin nəticə rəqəmini ondalık nöqtədən ƏVVƏL yazın (0 və ya 1) və s. kəsrə qədər vurma nəticəsinin bir hissəsi 0-a bərabər olur və ya lazımi onluq yerlərin sayına qədər (tələb olunan dəqiqlik ) (2-yə vurma sayına bərabərdir). Sonra həqiqi (kəsr) ədədin tam və kəsr hissələrini ayıran nöqtədən sonra yazılan sıfırların və birlərin yaranan ardıcıllığını SƏRƏFƏ yazmaq lazımdır . Nümunə 1. 2.25 ədədini (2 nöqtə 25 yüzdə bir) onluq sistemdən ikilik sistemə çevirək . İkili sistemdə kəsr 10.01- ə bərabər olacaqdır . Bunu necə əldə etdik? Nömrə tam hissədən (nöqtə qədər) ibarətdir - bu 2 və kəsr hissə - bu 0,25-dir. 1) Tam hissənin tərcüməsi: 2/2 = 1 (qalan 0 ) Bütün hissə 10 olacaq . 2) Kəsr hissəsinin tərcüməsi. 0.25 * 2 = 0 .5 (0) 0.5 * 2 = 1 .0 (1) Ardıcıl olaraq 2-yə vurma nəticəsində kəsr hissəsi 0-a bərabər oldu. Biz vurmağı dayandırırıq. İndi biz fraksiya hissəsini SƏRƏFƏ "toplayırıq" - ikili sistemdə 0,01 alırıq . 3) Tam ədədi və kəsr hissələrini əlavə edirik - biz əldə edirik ki, 2.25 onluq kəsr 10.01 ikili kəsrinə bərabər olacaqdır . Misal 2. 0,116 ədədini onluq sistemdən ikilik sistemə çevirək . 0,116 * 2 = 0,232 (0) 0,232 * 2 = 0,464 (0) 0,464 * 2 = 0,928 (0) 0,928 * 2 = 1,856 (1) //bu nəticənin tam hissəsini atın 0,816 * 1 = 2 . ) //bu nəticənin bütün hissəsini atın 0.712 * 2 = 1 .424 (1) //bu nəticənin bütün hissəsini atın 0.424 * 2 = 0 .848 (0) Gördüyümüz kimi vurma davam edir və davam edir. , nəticənin kəsr hissəsi 0-a bərabər olmur. Onda qərara gəlirik ki, ondalıq kəsrimizi nöqtədən sonra (kəsir hissədə) 7 onluq (bit) dəqiqliklə ikilik kəsrə çevirəcəyik . Önəmsiz bitlər haqqında nə öyrəndiyimizi xatırlayaq - bit (bit) bütün hissədən nə qədər uzaqdırsa, ona etinasızlıq etmək bizim üçün bir o qədər asan olar (mühazirənin 1-ci bölməsindəki izahat, kim unutdu). Nöqtədən sonra 7 bit dəqiqliklə 0,0001110 ikili fraksiyasını alırıq . 2.2 İkilik sistemdən onluğa çevirmə. 2.2.1 Tam ədədlər. Bütün tərcümə etməkikilik say sistemindən ondalığa qədər bu rəqəmi rəqəmlərə (bitlərə) bölmək və hər bir rəqəmi (bit) 2 rəqəminə müəyyən müsbət dərəcəyə vurmaq lazımdır (bu dərəcə ən az əhəmiyyətlidən sağdan sola saymağa başlayır. (sağ bit) və 0-dan başlayır ) . Başqa sözlə, ikinin gücü verilmiş bitin sayına bərabərdir (lakin bu yazılmamış qayda yalnız tam ədədlərin çevrilməsi vəziyyətində istifadə edilə bilər , çünki kəsr ədədlər üçün bitlərin nömrələnməsi tərcümə olunan kəsr hissədən başlayır. Onluq sistemə fərqli şəkildə ). Sonra ortaya çıxan məhsulları əlavə etməlisiniz . Misal. 110011 ikilik ədədini onluq say sisteminə çevirək . 110011₂ = 1*2⁵ + 1*2⁴ + 0*2³ + 0*2² + 1*2¹ + 1*2º = 32 +16 +0 + 0 + 2 + 1 = 51₁₀ Nəticədə 51 rəqəmini alırıq. ikili sistem. Məlumat üçün aşağıda 2 rəqəminin ilk səlahiyyətlərinin cədvəli verilmişdir . HƏLƏ OXUMAYIN :))) Komputer yaddaşında real ədədlər.  İNKİŞAF ALMADA!!!  - 5 ! Nəzərə alın ki, ədədin sıfır qüvvəsi həmişə 1-dir. 2.2.2 Kəsr ədədlər. İkilik kəsr (real) ədədi ondalığa çevirmək üçün aşağıdakıları etməlisiniz: a) 2.2.1-ci bənddəki alqoritmə uyğun olaraq onun tam hissəsini ondalığa çevirmək ; b) onun kəsr hissəsini aşağıdakı kimi tərcümə edin. Kəsr hissəni iki rəqəmin məhsullarının cəmi kimi təqdim etmək lazımdır , müəyyən bir mənfi gücə qaldırıldı ( nöqtədən sonra ilk rəqəmin gücü (kəsirin bütün hissəsindən sonra) -1-ə bərabər olacaq, nöqtədən sonrakı ikinci rəqəm üçün -2-yə bərabər olacaq və s.) Nəticə bu məbləğ onluq sistemdəki ədədin kəsr hissəsi olacaqdır. Misal. 10111.01 ədədini ikilik sistemə çevirək . 10111.01₂ = (1*2⁴ + 0*2³ + 0*2² + 1*2¹ + 1*2º) . (0*2ˉ¹ + 1*2ˉ²) = (16 + 0 + 4 + 2 + 1) . (0 + 0,25) = 23,25₁₀ Nəticədə onluq say sistemində 23,25 rəqəmini alırıq. 2-nin ilk mənfi qüvvələrinin cədvəli aşağıda verilmişdir. 2.2.3 Ədədləri ikilik sistemdən ondalığa çevirmək üçün ümumi düstur. Ədədləri ikilik sistemdən ondalığa çevirmək üçün ümumi düstur verək (həm tam, həm də kəsr hissələri). burada A ikili say sistemindəki ədəddir; Say sisteminin əsası 2-dir (yəni hər bit 2-yə vurulur); nHƏLƏ OXUMAYIN :))) Komputer yaddaşında real ədədlər.  İNKİŞAF ALMADA!!!  - 7 HƏLƏ OXUMAYIN :))) Komputer yaddaşında real ədədlər.  İNKİŞAF ALMADA!!!  - 4— tam rəqəmlərin sayı (bit) ; m ədədin kəsr rəqəmlərinin (bitlərinin) sayıdır . Bölünmə nöqtəsindən tam hissənin ilk biti qırmızı rənglə vurğulanır. Həmişə sıfır gücünə 2 ilə vurulur. Ondan əvvəlki növbəti bit (sola) birinci gücə 2 ilə vurulur və s. Bölünmə nöqtəsindən kəsr hissəsinin ilk biti yaşıl rənglə vurğulanır. Mənfi birinci gücə həmişə 2 ilə vurulur. Sağdakı növbəti bit 2 ilə mənfi ikinci gücə vurulur və s. 3. Elmi qeyd: hər iki sistemdə normallaşdırılmış qeyd. Mantis, eksponent, eksponent dərəcəsi. 3.1 Ədədin yazılmasının eksponensial forması. Əvvəllər biz mövqe nömrələrini rəqəmlə qeyd etmək üçün ətraflı sxemi öyrəndik . 0.0000000000000000000016 ədədini götürək . Standart formada çox uzun bir giriş var . Və eksponensial formada bu belə görünəcək: 1.6 * 10ˉ²¹ Beləliklə , ədədin eksponensial forması nədir və ədədi bu formada necə təmsil etmək olar? Ədədin elmi qeydi real ədədlərin mantiseksponent kimi təsviridir . Çox böyük və çox kiçik rəqəmləri təmsil etmək, həmçinin onların yazılarını birləşdirmək üçün əlverişlidir. N = M * pⁿ burada N – yazılacaq ədəd, M – ədədin mantisası , p – əsas (verilmiş ədədin say sisteminin əsasına bərabər), n (tam) – sıra (dərəcə) , müsbət və mənfi ola bilər), n-nin gücünə p xarakterik ədədlərdir (eksponent, yəni bir gücə (tərtibə) qaldırılmış baza). Əhəmiyyətli bir nüans. Əgər onluq ədədin tam hissəsi 0-dan fərqlidirsə , eksponentin sırası (dərəcəsi) müsbət olacaq , tam hissəsi 0-a bərabərdirsə , eksponentin dərəcəsi mənfi olacaq . 3.2 Ədədlərin yazılmasının normal və normallaşdırılmış forması. Ədədin normal forması mantisanın (işarəni nəzərə almadan) yarımintervalda [0,1] yerləşdiyi formadır, yəni 0 <= M < 1. Bu yazı forması var. çatışmazlıq : bəzi rəqəmlər birmənalı şəkildə yazılır (məsələn, 0,0001 0,000001*10², 0,00001⋅10¹, 0,0001⋅10º, 0,001⋅10ˉ¹ və s. kimi yazıla bilər). Buna görə də, qeydin başqa bir forması geniş yayılmışdır (xüsusilə kompüter elmində) - normallaşdırılmışdır, onda onluq ədədin mantisası 1-dən (daxil olmaqla) 10-a (eksklüziv) qədər, yəni 1 <= M < 10 (eyni kimi, ikilik ədədin mantisası 1-dən 2-yə qədər dəyərlər alır) ). Başqa sözlə, onluq sistemdəki mantissa 1.0-dan (daxil olmaqla) 10-a (eksklüziv) qədər fraksiyalı bir rəqəm olmalıdır , yəni. mantisanın tam hissəsi bir rəqəmdən ibarət olmalıdır və kəsr hissəsi riyazi olaraq məhdud deyil. Normallaşdırılmış formanın üstünlüyü ondan ibarətdir ki, beləliklə, istənilən ədəd (0-dan başqa) özünəməxsus şəkildə yazılır . Dezavantaj odur ki, 0-ı bu formada təmsil etmək mümkün deyil, ona görə də informatikada ədədlərin təsviri 0 ədədi üçün xüsusi işarə (bit) verir. 3.3 Onluq ədədlərin eksponensial normallaşdırılmış formada yazılması nümunələri. Nümunələrə baxaq . Misal 1. 1015000 (bir milyon on beş min) onluq ədədini eksponensial normallaşdırılmış formada yazaq . Bu ədədin say sistemi ondalıkdır, ona görə də baza 10 olacaq . Gəlin mantisanı seçək . Bunun üçün ədədi kəsr kimi təsəvvür edin, onun kəsr hissəsi sıfıra bərabər olacaq (ədəd tam ədəd olduğu üçün): 1000000.0. Ədədin tam hissəsi 0 -dan böyükdürsə , onda tam hissədə yalnız bir rəqəm qalana qədər nöqtəni başlanğıc mövqeyinin soluna (tam hissənin daxilində) köçürün . Bundan sonra bir dövr qoyuruq. Biz əhəmiyyətsiz sıfırları (rəqəmin sonunda) atırıq. 1.015- ə bərabər olan ədədin mantissini alırıq . Ədədin əsasının dərəcəsini (tərtibini) təyin edək . Tam və kəsr hissələrini ayıran nöqtəmiz sola neçə mövqe köçürdü? Altı vəzifə üçün. Bu o deməkdir ki, sifariş 6 olacaq . Bu halda sıra müsbətdir (biz 0-a bərabər olmayan ədədin tam hissəsindəki nöqtəni köçürdük). Normallaşdırılmış formada son giriş: 1.015 * 10⁶ . Bu rəqəmi bu formada yaza bilərik: 1.015E6 (burada E6 onluq ədədin göstəricisidir , yəni 10-dan 6-cı dərəcəyə qədər). Gəlin özümüzü sınayaq . Ədədin eksponensial qeydi ədədin (mantis) və başqa bir ədədin (eksponent) hasilindən başqa bir şey deyildir. 1.015-i 10⁶-ə vursanız nə olar? 1,015*10⁶ = 1,015*1000000 = 1015000 . Düzdür. Bu yanaşma (normallaşdırılmış) birmənalı qeyd yaratmağa kömək edir yuxarıda göstərildiyi kimi eksponensial formada ədədlər. Misal 2. 0,0098 onluq həqiqi ədədini normallaşdırılmış formada yazaq . Ədədin əsasını vurğulayaq - 10- a bərabərdir (onluq say sistemi). Nömrənin mantissini seçək - 9,8- ə bərabərdir (ədədin tam hissəsi sıfıra bərabərdir, yəni nöqtəni sağa birinci əhəmiyyətli rəqəmə keçirik (1-dən 9-a qədər diapazonda) Ədədin sırasını təyin edirik - nöqtəni üç mövqeyə köçürdük, yəni sıra 3- dür. Müsbətdir mənfi, yoxsa mənfi?Nöqtəni sağa (ədədin kəsr hissəsində) köçürdükdən sonra sıra (güc) mənfi olacaq .Normallaşdırılmış formada ədədin yekun qeydi 9.8 * 10ˉ³ və ya 9.8E-3- dür . Gəlin özümüzü bir daha yoxlayaq. 9.8-i 10ˉ³-ə vurun. 9.8 * 10ˉ³ = 9.8 * 0.001 = 0.0098 . Düzdür. Nümunə 3. Onluq həqiqi ədəd 3.56 -nı normallaşdırılmış formada yazaq . Ədədin əsasını seçin - 10- a bərabərdir (onluq say sistemi) Ədədin mantissini seçin - bərabərdir... 3.56 (tam ədəd ədədin bir hissəsi 0-a bərabər olmayan bir tək rəqəmdir. Bu o deməkdir ki, nöqtəni heç bir yerə köçürmək lazım deyil, nömrənin özü mantis olacaq.) Baza sırasını vurğulayaq: Mantis hansı rəqəmlə olmalıdır. , ədədin özünə bərabərdir ki, dəyişməsin? Vahid başına. Bu o deməkdir ki, sifariş sıfır olacaq. Normallaşdırılmış formada rəqəmin son qeydi 3.56 * 10º və ya 3.56E0-dir. 4. Həqiqi ədədlərin kompüter yaddaşında saxlanması: float və double. 4.1 Float və double növləri. Gəlin mühazirəmizin əsas hissəsinə keçək. Artıq bildiyimiz kimi, Java-da real ədədlərin iki növü var: floatdouble . Float növü kompüter yaddaşında 32 bit tutur və [3.4E-38; 3.4E+38) (başqa sözlə, 3.4*10ˉ³⁸ (daxil olmaqla) ilə 3.4 * 10³⁸ (daxil olmaqla) diapazonunda). Vacib nüans 1. Float nömrələri müsbət və ya mənfi ola bilər. Yuxarıdakı bu diapazon float diapazonuna daxil olan ədədlərin modullarını göstərmək üçün təqdim edilmişdir. Vacib nüans 2. 10³⁸ təxminən bərabərdir 2¹²⁷ , müvafiq olaraq 10 ˉ³⁸ təxminən 2ˉ¹²⁷ -ə bərabərdir . Beləliklə, float nömrələrinin mütləq qiymətlərinin intervalı [3.4 * 2ˉ¹²⁷ kimi yazıla bilər; 3,4 * 2¹²⁷). İkiqat tip kompüter yaddaşını iki dəfə çox tutur -64 bit və [-1.7E+308 diapazonunda onluq dəyərləri qəbul edə bilər ; 1.7E+308) müvafiq olaraq. 4.2 İkilik ədədlərin eksponensial normallaşdırılmış forması. Biz bilirik ki, nömrələr kompüter yaddaşında ikilik formada saxlanılır. Beləliklə, 1560.256 rəqəmini (float növü) götürək və onu mövqe şəklində ikili sistemə çevirək: 11000011000.01000001100 . Siz hesab edə bilərsiniz ki, kompüterin yaddaşında belə saxlanılacaq. Amma bu doğru deyil! Kompüter yaddaşında floatdouble tipləri ( həqiqi üzən nöqtə tipləri ) eksponensial normallaşdırılmış formada saxlanılır , lakin gücün əsası 10 əvəzinə 2-dir. Bu onunla əlaqədardır ki, yuxarıda qeyd edildiyi kimi, bütün verilənlər kompüter ikili formada (bit) təmsil olunur. Nömrə üçün müəyyən miqdarda kompüter yaddaşı ayrılır. 15.2 müsbət ədədini normallaşdırılmış eksponensial formada təqdim edək : 1.52*10¹ . Sonra onun ikili “əkiz” 1111.00110011001 -ni eyni alqoritmdən istifadə edərək eksponensial normallaşdırılmış qeydlə də təqdim edək : 1) Baza 2-yə bərabər olacaq 2) Mantis 1.11100110011001-ə bərabər olacaq 3) Dərəcə müsbət və 3-ə bərabər olacaq. (nöqtə 3 bit sola sürüşdürülür) onluq sistemdə. Onu binar sistemə çevirək: 11 . Beləliklə, ikili eksponensial normallaşdırılmış formada 1,11100110011001 * 2¹¹ olardı . 4.3 Float ədədinin eksponensial normallaşdırılmış ikili formasının kompüter yaddaşında saxlanması. Beləliklə, real ədədin kompüter yaddaşında eksponensial normallaşdırılmış ikili formada saxlanacağını anladıq . Yaddaşda necə görünəcək? Float növünü götürək . Kompüter hər float nömrəsi üçün 32 bit ayırır . Onlar aşağıdakı kimi paylanır . Bu rəqəm sxematik şəkildə kompüterdə 32 bitlik float nömrəsi üçün ayrılmış yaddaşı göstərir. HƏLƏ OXUMAYIN :))) Komputer yaddaşında real ədədlər.  İNKİŞAF ALMADA!!!  - 5 Bit nömrələmə qırmızı rənglə göstərilir . Yaşıl, nömrənin işarəsini saxlamaq üçün ayrılmış yaddaşın bir hissəsini (1 bit) göstərir. Sarı ədədin eksponensial formasının (8 bit) dəyişdirilmiş gücünü (sifarişini) saxlamaq üçün ayrılmış yaddaşın bir hissəsini göstərir. Mavigizli vahid (23 bit) olmayan nömrənin normallaşdırılmış mantissini saxlamaq üçün ayrılmış yaddaş parçasını bildirir. Gəlin daha yaxından nəzər salaq. 1) İşarə biti. Ən əhəmiyyətli (soldan birinci) bit həmişə nömrənin işarəsini saxlamaq üçün ayrılır (rəqəm mənfi olarsa 1, müsbətdirsə 0). İstisna sıfır sayı ola bilər - proqramlaşdırmada sıfır həm mənfi, həm də müsbət ola bilər . 2) Sonra 2 bazası olan eksponentin dərəcəsinin (tərtibinin) bitləri gəlir . Bunun üçün 8 bit ayrılmışdır. Bildiyimiz kimi, float ədədlərinin eksponent dərəcəsi həm mənfi (tam hissəsi 0 olan ədədlər üçün 3.3-cü bəndə bax), həm də müsbət (tam hissəsi sıfırdan fərqli olan ədədlər üçün) ola bilər və 2ˉ¹²⁷ ilə 2¹²⁷ arasında dəyişir . Nəzəriyyə olaraq, işarə bitində olduğu kimi, eksponentin işarəsini təyin etmək üçün bir bit ayırmalıyıq. Amma bu doğru deyil. Eksponentin işarəsini təyin etməyə bir az sərf etməmək üçün float nömrələri yarım bayt +127 (0111 1111) eksponentinə bir ofset əlavə edir . Beləliklə, 2ˉ¹²⁷ ilə 2¹²⁷ arasında bir sıra güclər əvəzinə kompüter 0-dan +254-ə qədər bir sıra gücləri saxlayır - bütün güc dəyərləri müsbətdir , işarəyə əlavə bayt sərf etməyə ehtiyac yoxdur. Belə çıxır ki, eksponentin dəyəri mümkün qiymətə nisbətən yarıya qədər yerdəyişmişdir . Bu o deməkdir ki, eksponentin faktiki dəyərini əldə etmək üçün yaddaşda saxlanan dəyərdən bu ofseti çıxmaq lazımdır. Yaddaşda saxlanılan eksponent dəyəri ofsetdən (+127) azdırsa, eksponent mənfidir: bu məntiqlidir. Misal. Mənfi dərəcə dəyişikliyini həyata keçirək -18 . Biz ona ofset +127 əlavə edirik, +108 dərəcəsinin qiymətini alırıq (hesablamada 0 dərəcəsini unutma). Dərəcəni binar formaya çevirək: 1101100 Lakin dərəcə üçün 8 bit yaddaş ayrılıb və burada biz 7 bitlik rəqəm alırıq. Boş, boş yüksək rəqəmin (bit) yerinə kompüter 0 əlavə edir. Nəticə odur ki, bu dərəcə kompüterin yaddaşında 01101100 kimi saxlanacaq . Baxaq: +108 < +127, yəni dərəcə əslində mənfidir. Aşağıdakı maraqlı cədvəli nəzərdən keçirin: İkili və onluq sistemlərdə float ədədlərinin normallaşdırılmış formalarının səlahiyyətlərinin bütün mümkün dəyərlərini göstərir. Gördüyümüz kimi, binar sistemdə +127 tam baytın (8 bit) yarısıdır. 3) Qalan 23 bit mantis üçün qorunur HƏLƏ OXUMAYIN :))) Komputer yaddaşında real ədədlər.  İNKİŞAF ALMADA!!!  - on bir. Ancaq normallaşdırılmış ikili mantis üçün ən əhəmiyyətli bit (normallaşdırılmış mantisanın tam hissəsi) həmişə 1-ə bərabərdir ( örtülü bir adlanır ), çünki mantisanın sayı 1<=M<2 (və) diapazonunda yerləşir. mühazirənin 2.1.1-ci bəndini də xatırlayın). Yeganə istisna 0 rəqəmidir. Ayrılmış 23 bitə vahid yazmağın və yaddaşı israf etməyin mənası yoxdur, buna görə də mantisanın qalan hissəsi (onun kəsr hissəsi) ayrılmış 23 bitə yazılır. Belə çıxır ki, mahiyyət etibarilə float nömrəsinin əhəmiyyətli hissəsinin uzunluğu 24-ə bərabərdir, onlardan bir az bit saxlanılır. Əhəmiyyətli bir nüans. Unutmayaq ki, onluq kəsr ədədlərini ikilik ədədlərə çevirərkən ikilik sistemdə kəsr hissəsi çox vaxt nəhəng olur. Və float nömrəsini saxlamaq üçün yalnız 32 bitimiz var. Bu halda, ikili fraksiyanın ən aşağı, ən az əhəmiyyətli rəqəmləri (bu mühazirənin 2.1.2-ci bəndini xatırlayın) ayrılmış yaddaşa daxil edilməyəcək və kompüter onlara məhəl qoymayacaq . Nömrənin dəqiqliyi itiriləcək , amma görürsən ki, minimaldır. Başqa sözlə, fraksiya floatların dəqiqliyi 6-7 onluq yerdir . 4.4 İkiqat ədədin eksponensial normallaşdırılmış ikili formasının kompüter yaddaşında saxlanması. Double tipli real ədədlər, bəzi xüsusiyyətlər istisna olmaqla, float nömrələri ilə eyni şəkildə kompüter yaddaşında saxlanılır . İkiqat nömrənin kompüter yaddaşında 64 bit var. Onlar aşağıdakı kimi paylanır (həmçinin soldan sağa sıra ilə): 1) İşarə biti (bax bənd 4.3). Bu bitin sayının 63 olacağını başa düşürük . 2) Dərəcə (sifariş). İkiqat nömrələr onu saxlamaq üçün 11 bit ayrılır . Bir dərəcə dəyişməsi də həyata keçirilir , lakin ikiqat nömrələr üçün bu +1023-ə bərabər olacaqdır . 3) Mantissa (əhəmiyyətli hissə). İkiqat nömrələr onu saxlamaq üçün 52 bit (rəqəm) ayrılır . Həmçinin, mantisanın tam tam hissəsi ( gizli vahid ) yaddaşda saxlanmır . Onu da qeyd etmək lazımdır ki, kəsr cütlərinin dəqiqliyi təxminən 16 onluq yerdir . 4.5 Onluq sistemin həqiqi ədədinin kompüter yaddaşında əks etdirilməsi nümunələri. Və mühazirəmizin yekun nöqtəsi mövzunun başa düşülməsini gücləndirmək üçün onluq say sisteminin kəsr nömrəsini kompüter yaddaşında saxlama formasına çevirmək nümunəsi olacaqdır. Misal 1. Nömrə götürün-4.25 float növü. Gəlin, bu mühazirədə danışdığımız hər şeyi xatırlayaraq, onu ikilik say sistemində eksponensial normallaşdırılmış formada təqdim edək. 1) Ədədin tam hissəsini ikilik formaya çevirin : 4/2 = 2 ( 0 bölməsinin qalığı ) 2/2 = 1 ( 0 bölməsinin qalığı ) İkilik sistemdə tam hissə 100 -ə bərabər olacaq . 2) Ədədin kəsr hissəsini ikilik formaya çevirin . 0,25*2 = 0,5 ( 0 ) 0,5*2 = 1,0 ( 1 ) İkilik sistemdə kəsr hissəsi 0,01- ə bərabər olacaqdır . 3) Beləliklə, -4,25₁₀ = -100,01₂ . 4) -100.01₂ ədədini ikilik say sistemində eksponensial normallaşdırılmış formaya çevirək (bu o deməkdir ki, gücün əsası 2 olacaq). -100.01₂ = -1.0001 *2² Gəlin dərəcənin qiymətini onluq formatdan ikiliyə çevirək . 2/2= 1 (qalıq 0 ) Dərəcə 10₂-dir. Alırıq ki, -4.25₁₀ ikili eksponensial normallaşdırılmış formada -1.0001 * 2¹º- ə bərabər olacaq, onun kompüter yaddaşında necə görünəcəyini yazaq . İşarə biti 1 olacaq (mənfi rəqəm). Eksponent ofset bərabərdir 2+127 = 129₁₀ = 10000001₂ Biz mantisdən gizli olanı çıxarırıq, biz 00010000000000000000000 alırıq ( biz boş olmayan aşağı səviyyəli bitləri doldururuq ). Alt xətt. 1 10000001 00010000000000000000000 - kompüterin yaddaşında -4.25 rəqəmi belə saxlanılır. Misal 2. 0,75₁₀ float nömrəsini kompüter yaddaşında ikili yaddaş formatına çevirin . Nəticə 0 01111110 100000000000000000000000 olmalıdır . Diqqətiniz üçün təşəkkürlər.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION