Kayan noktalı sayılar gerçel sayıların bilgisayar ortamındaki gösterim şekillerinden biridir. Gerçek dünyada sayılar sonsuza kadar giderken, bilgisayar ortamında bilgisayar donanımının getirdiği sınırlamalardan dolayı bütün sayıların gösterilmesi mümkün değildir. Bununla birlikte gerçekte sonsuza kadar giden birtakım değerler bilgisayar ortamında ortamın kapasitesine bağlı olarak yaklaşık değerlerle temsil edilirler. Bu sınırlamaların etkisini en aza indiren, sayıların maksimum miktarda ve gerçeğe en yakın şekilde temsilini sağlayan sisteme "Kayan-Noktalı Sayılar" sistemi denir. Kayan-Noktalı sayılar sistemi, bir sayı ile 10'un herhangi bir kuvvetinin çarpımı şeklinde sıklıkla kullanılan bilimsel gösterime oldukça benzeyen bir notasyona sahiptir ve en sık kullanılan IEEE 754 standardına göre şekillendirilmiştir.
Bilinen gösterim şekillerinde n bitlik kapasiteyle gösterilebilecek sayı aralığı bellidir. ; 0 ile 2n, şeklindeki gösterimde; -2n-1+1 ile 2n-1, ikiye tümleyen gösteriminde ise; -2n-1 ile 2n-1 arasındaki sayıları göstermek mümkündür.
Bu gösterim şekillerinde çok büyük ve çok küçük değerlerin ifade edilmesi için çok miktarda bilgisayar donanımına ihtiyaç duyulmaktadır. Örneğin sabit noktalı gösterimde n bitlik alanda noktanın yeri bellirlenmiş ve x bit anlamlı kısım için, geri kalan (n-x) bit ise virgülden sonraki kısım için ayrılmıştır. Bu durumda 8 bitin 5 biti sayının tam kısmını, kalan 3 biti virgülden sonraki kısmını ifade ederse 10110,011, 11101,001, 11111,111 şeklindeki sayılar gösterilebilir. Kayan noktalı gösterimde ise eşit miktarda bilgisayar donanımı ile daha geniş aralıktaki sayılar üretilebilir. Yani 8 bitlik alanda 1,1101101, 10,101011, 11111,111 şeklinde virgülün herhangi bir aralığa gelerek oluşturacağı bütün kombinasyonları ifade etmek mümkündür.
Kayan noktalı sayılar tam sayı işlemlerden daha yavaştır. Bilgisayar performanslarının karşılaştırılmasında özellikle bilimsel bilgisayarlarda, kayan noktalı sayılar üzerindeki işlem hızı önemlidir. Ölçüm için FLOPS (floating point operation per second) kullanılır.
Gösterim
Bilimsel gösterimde sayılar, virgülün solunda 0'dan farklı bir basamak kalacak şekilde 10'un kuvvetiyle çarpım halinde gösterilir. Örneğin; 5647 ve 0.0003456 sayıları sırasıyla 5.647x103 ve 3.456x10−4 şeklinde yazılır. Bu formatta 10'un kuvveti değiştikçe çarpan sayının tam sayı kısmını belirleyen nokta, kuvvetin değişme yönüne uygun olarak kaydırılır. Bu kaydırma işlemine olağanlaştıma (normalizasyon) denir. Kayan noktalı sayılar sistemi de bu temel prensibe dayalı bir sisteme sahiptir.
Kayan noktalı sayılar, ikilik düzendeki sayıların bilimsel gösterimle gösterilmesidir. Kayan noktalı sayılar işaret, anlamlı kısım ve üst(2'nin üssü şeklinde) olmak üzere üç kısımdan oluşur.
M x BE
Burada M kayan noktalı sayının mantis'i; B tabanı, E ise üssüdür. Kayan noktalı sayının gösteriminde anlamlı kısmın bitleri fazla olursa sayının duyarlılığı, üst bitleri fazla olursa gösterilebilecek sayı aralığı artar.
Bu modele göre 13 sayısını gösterelim;
13 sayısı, 13 = 13,0x100 = 1,3x101 = 0,13x102 olarak ifade edilebilir.
İkilik sistemde düşünürsek: 1310 = 11012x20 = 110,12x21 = 11,012x22 = 1,1012x23 = 0,1101x24
Son şekliyle ele alırsak, işaret biti 0, anlamlı kısım 11010000 ve üst 00100 olacaktır.
Aynı şekilde 6553610 sayısını göstermek istersek: 6553610 = 0,12x217 yani işaret biti 0, anlamlı kısım 10000000 ve üst 10001 olacaktır.
Fakat bu modelde 0,2510 sayısını göstermek istersek: 0,2510 = 1,0x2−2 olacağından üst için ayrı bir işaret biti kullanmak gerekmektedir. Bunun yerine saptırılmış üst yöntemini kullanmak daha verimli olmaktadır. Bu yöntemde, gerçek üst değerine sabit sapma değeri eklenerek saptırılmış üst elde edilir.
Örneğin bu modelde saptırma değeri olarak 16 seçilmiş olsun. Bu durumda üst değeri 16'dan büyük olan değerler pozitif üstleri, 16'dan küçük olan değerler için negatif üstleri gösterir. Böylece ilk örnek için saptırılmış üst 4+16=20 yani 101012 olacağından, 13 sayısının yeni gösterimi aşağıdaki gibi olacaktır.
Aynı şekilde 0,2510 sayısı için işaret biti 0, anlamlı kısım 100000002, negatif üst için saptırılmış değer -2+16=14 yani 011102 olacaktır.
Olağanlaştırma
Kayan noktalı sayıları bu yöntemle ifade ederken karşılaşılan sorunlardan biri de sayıların benzersiz gösteriminin sağlanamamasıdır. Kayan nokta yöntemiyle gösterim yapılırken virgülün yeri ile birlikte üst değeri değiştiğinde aynı sayı birden farklı şekilde yazılabilir.
Şekilde gösterilen sayıların tümü aynı değere sahiptir, ancak gösterim farkından dolayı değişik şekillerde ifade edilebilmektedirler. Bu durum için verimli olmadığından sayıların eşsiz gösterimini sağlayan bir yöntem hayata geçirilmiştir. Bu yöntemde ikilik sistemdeki sayılar bilimsel gösterimdeki gibi, virgülün solunda sıfırdan farklı bir sayı kalana kadar kaydırılır ve o şekliyle ifade edilir. Bu işleme "olağanlaştırma (normalizasyon)" denir. Bu işlem sonunda her sayının benzersiz gösterimi sağlanırken, sayı 1 ve 0 lardan oluştuğu için virgülün solunda sıfırdan farkı olan değerin 1 olduğu bilindiğinden, anlamlı kısımın ifadesi için fazladan bir bit kazanılmış olur.
IEEE 754 standardı
Kayan noktalı sayıların her değişik aygıta uyumlu bir gösterime sahip olması için IEEE 754 standardı geliştirilmiştir. Bu standarda göre kayan noktalı sayıların gösterimi tek duyarlı (32 bit) ve çift duyarlı (64 bit) olmak üzere iki şekilde belirlenmiştir. Bu gösterimlerde sayılar olağanlaştırılmış ve üstler, üst değerini tutan bit sayısına göre saptırılmıştır. üst değerini tutan bit sayısı k ise, saptırma değeri 2k-1-1 olarak belirlenmiştir.
Tek duyarlı gösterim
Tek duyarlı gösterime göre 32 bitin 1 biti işaret için, 8 biti üst için ve 23 biti de anlamlı kısmın gösterimi için kullanılmaktadır. Bu modele göre üst saptırma miktarı 127 olarak belirlenmiştir. Yani üst gösteriminde 127'den büyük sayılar pozitif, 127'den küçük sayılar negatif üstleri temsil eder.
Çift duyarlı gösterim
Çift duyarlı gösterimde ise 64 bitin 1 biti işaret, 11 biti üst ve 52 biti de anlamlı kısmı ifade etmek için kullanılır. Üst saptırma değeri 1023 olarak belirlenmiştir. Bu şekilde 1023'ten büyük olan sayılar pozitif, küçük olan sayılar ise negatif üstleri göstermektedir.
Örnekler
Toplama
Kayan noktalı sayılar toplanırken izlenecek adımlar şunlardır:
- Toplanacak olan sayılardan küçük olan sayının anlamlı kısmını, üstler eşitleninceye kadar sağa kaydır
- Anlamlı kısımları topla
- Gerekiyorsa sayıyı olağanlaştır
- Anlamlı kısmı, gösterimde belirlenmiş olan bit sayısına yuvarla
Sonuç olağan hale gelene kadar son iki adımı tekrarla.
Örneğin işaret biti hariç 13 bitle (5 bit üst ve 8 bit anlamlı kısım) gösterilen ve üst saptırma değeri 15 olan aşağıdaki iki sayı toplanmak istenirse;
Bu durumda sayılar 11,0010000 ve 0,100110100 şeklindedir. Toplam ise 11,0010000 + 0,100110100 = 11,10111010 olarak elde edilir. Anlamlı kısmın gösteriminde bit sayısı kısıtlaması olduğundan dolayı sayıyı olağanlaştırdığımızda sağdaki bitler kaybedilir ve toplam aşağıdaki şekilde gösterilir.
Çarpma
Kayan noktalı sayılarda çarpma işlemi yapılırken;
- İki sayının üst değerleri toplanarak sonucun üst değeri elde edilir. (Ancak bu üst değerleri saptırılmış olduğundan, sonucun üst değeri iki kez saptırılmış olarak elde edilir. Bu nedenle sonucun üst değerinden saptırma değeri çıkarılarak gerçek üst değeri bulunur)
- İki sayının anlamlı kısımları çarpılarak sonucun anlamlı kısmı hesaplanır
- Sonuç olağanlaştırılır
- Bit sayısına göre yuvarlama yapılır
Örnek olarak 1 biti işaret, 8 biti üst ve 4 biti anlamlı kısmı gösteren ve üst için saptırma değeri 127 olan olağanlaştırlımış iki sayıyı çarpalım.
0 10000100 0100 x 1 00111100 1100 -----------------
Sonucun işareti 1 olacaktır. Anlamlı kısımları çarptığımızda(olağanlaştırlımış biçimde olduğundan dolyı gösterilmeyen biti de eklenir) ;
1.0100 x 1.1100 --------- 00000 00000 10100 10100 10100 ---------- 1000110000 10.00110000
sonucunu elde ederiz.
Üstleri hesaplarken;
10000100 + 00111100 ---------- 11000000
Bu sonuç iki kez kaydırılmış üst değerini verdiği için, kaydırma değeri bir kez çıkarılır. Sonuç 11000000 - 01111111 = 01000001 olarak bulunur.
Sonuç olağanlaştırlır ve anlamlı kısım 4 bite yuvarlanırsa çarpım aşağıdaki şekliyle elde edilir.
1 01000010 0001
Kayan noktada karmaşıklıklar
Sayıları kayan noktalı şekilde ifade etmek çeşitli karmaşıklıklara yol açabilir.
- İşlemlerin daha karmaşık olması
- Toplama ve çıkarma işlemlerinde aritmetik taşmanın yanında duyarlılıktan taşma olasılığının olması
- Standardın korunmasının zor olması
- Çok küçük sayıların olağanlaştırlımış biçimde gösterilmesinin mümkün olmaması
- Yuvarlama, işlemlerin sonsuz veya sayı değil sonuçlarıyla karşılaşma
bu karmaşıklıklardan bazılarıdır.
IEEE 754 standardına göre sonsuz, sayı değil gibi kavramlar ve yuvarlama işlemi için de çeşitli metotlar geliştirilmiştir.
Kaynakça
- Michael T., Heath (1997). Scientific Computing: An Introductory Survey (İngilizce). Illinois: The McGraw-Hill Companies.
Dış bağlantılar
- [1] 13 Ağustos 2011 tarihinde Wayback Machine sitesinde . Münih Teknik Üniversitesi Nümerik Programlama dersi ders notları
- [2][] TOBB ETU Bilgisayar Mimarisi dersi ders notları
- [3] Bilgisayar Mimarisi
- Fatih Üniversitesi Bilgisayar Organizasyonu dersi ders notları
- [5] 18 Nisan 2007 tarihinde Wayback Machine sitesinde . Kayan Nokta Aritmetiği
- [6] 21 Aralık 2007 tarihinde Wayback Machine sitesinde . Kayan Nokta Aritmetiği
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Kayan noktali sayilar gercel sayilarin bilgisayar ortamindaki gosterim sekillerinden biridir Gercek dunyada sayilar sonsuza kadar giderken bilgisayar ortaminda bilgisayar donaniminin getirdigi sinirlamalardan dolayi butun sayilarin gosterilmesi mumkun degildir Bununla birlikte gercekte sonsuza kadar giden birtakim degerler bilgisayar ortaminda ortamin kapasitesine bagli olarak yaklasik degerlerle temsil edilirler Bu sinirlamalarin etkisini en aza indiren sayilarin maksimum miktarda ve gercege en yakin sekilde temsilini saglayan sisteme Kayan Noktali Sayilar sistemi denir Kayan Noktali sayilar sistemi bir sayi ile 10 un herhangi bir kuvvetinin carpimi seklinde siklikla kullanilan bilimsel gosterime oldukca benzeyen bir notasyona sahiptir ve en sik kullanilan IEEE 754 standardina gore sekillendirilmistir Bilinen gosterim sekillerinde n bitlik kapasiteyle gosterilebilecek sayi araligi bellidir 0 ile 2n seklindeki gosterimde 2n 1 1 ile 2n 1 ikiye tumleyen gosteriminde ise 2n 1 ile 2n 1 arasindaki sayilari gostermek mumkundur Bu gosterim sekillerinde cok buyuk ve cok kucuk degerlerin ifade edilmesi icin cok miktarda bilgisayar donanimina ihtiyac duyulmaktadir Ornegin sabit noktali gosterimde n bitlik alanda noktanin yeri bellirlenmis ve x bit anlamli kisim icin geri kalan n x bit ise virgulden sonraki kisim icin ayrilmistir Bu durumda 8 bitin 5 biti sayinin tam kismini kalan 3 biti virgulden sonraki kismini ifade ederse 10110 011 11101 001 11111 111 seklindeki sayilar gosterilebilir Kayan noktali gosterimde ise esit miktarda bilgisayar donanimi ile daha genis araliktaki sayilar uretilebilir Yani 8 bitlik alanda 1 1101101 10 101011 11111 111 seklinde virgulun herhangi bir araliga gelerek olusturacagi butun kombinasyonlari ifade etmek mumkundur Kayan noktali sayilar tam sayi islemlerden daha yavastir Bilgisayar performanslarinin karsilastirilmasinda ozellikle bilimsel bilgisayarlarda kayan noktali sayilar uzerindeki islem hizi onemlidir Olcum icin FLOPS floating point operation per second kullanilir GosterimBilimsel gosterimde sayilar virgulun solunda 0 dan farkli bir basamak kalacak sekilde 10 un kuvvetiyle carpim halinde gosterilir Ornegin 5647 ve 0 0003456 sayilari sirasiyla 5 647x103 ve 3 456x10 4 seklinde yazilir Bu formatta 10 un kuvveti degistikce carpan sayinin tam sayi kismini belirleyen nokta kuvvetin degisme yonune uygun olarak kaydirilir Bu kaydirma islemine olaganlastima normalizasyon denir Kayan noktali sayilar sistemi de bu temel prensibe dayali bir sisteme sahiptir Kayan noktali sayilar ikilik duzendeki sayilarin bilimsel gosterimle gosterilmesidir Kayan noktali sayilar isaret anlamli kisim ve ust 2 nin ussu seklinde olmak uzere uc kisimdan olusur M x BE Burada M kayan noktali sayinin mantis i B tabani E ise ussudur Kayan noktali sayinin gosteriminde anlamli kismin bitleri fazla olursa sayinin duyarliligi ust bitleri fazla olursa gosterilebilecek sayi araligi artar Bu modele gore 13 sayisini gosterelim 13 sayisi 13 13 0x100 1 3x101 0 13x102 olarak ifade edilebilir Ikilik sistemde dusunursek 1310 11012x20 110 12x21 11 012x22 1 1012x23 0 1101x24 Son sekliyle ele alirsak isaret biti 0 anlamli kisim 11010000 ve ust 00100 olacaktir Ayni sekilde 6553610 sayisini gostermek istersek 6553610 0 12x217 yani isaret biti 0 anlamli kisim 10000000 ve ust 10001 olacaktir Fakat bu modelde 0 2510 sayisini gostermek istersek 0 2510 1 0x2 2 olacagindan ust icin ayri bir isaret biti kullanmak gerekmektedir Bunun yerine saptirilmis ust yontemini kullanmak daha verimli olmaktadir Bu yontemde gercek ust degerine sabit sapma degeri eklenerek saptirilmis ust elde edilir Ornegin bu modelde saptirma degeri olarak 16 secilmis olsun Bu durumda ust degeri 16 dan buyuk olan degerler pozitif ustleri 16 dan kucuk olan degerler icin negatif ustleri gosterir Boylece ilk ornek icin saptirilmis ust 4 16 20 yani 101012 olacagindan 13 sayisinin yeni gosterimi asagidaki gibi olacaktir Ayni sekilde 0 2510 sayisi icin isaret biti 0 anlamli kisim 100000002 negatif ust icin saptirilmis deger 2 16 14 yani 011102 olacaktir OlaganlastirmaKayan noktali sayilari bu yontemle ifade ederken karsilasilan sorunlardan biri de sayilarin benzersiz gosteriminin saglanamamasidir Kayan nokta yontemiyle gosterim yapilirken virgulun yeri ile birlikte ust degeri degistiginde ayni sayi birden farkli sekilde yazilabilir Sekilde gosterilen sayilarin tumu ayni degere sahiptir ancak gosterim farkindan dolayi degisik sekillerde ifade edilebilmektedirler Bu durum icin verimli olmadigindan sayilarin essiz gosterimini saglayan bir yontem hayata gecirilmistir Bu yontemde ikilik sistemdeki sayilar bilimsel gosterimdeki gibi virgulun solunda sifirdan farkli bir sayi kalana kadar kaydirilir ve o sekliyle ifade edilir Bu isleme olaganlastirma normalizasyon denir Bu islem sonunda her sayinin benzersiz gosterimi saglanirken sayi 1 ve 0 lardan olustugu icin virgulun solunda sifirdan farki olan degerin 1 oldugu bilindiginden anlamli kisimin ifadesi icin fazladan bir bit kazanilmis olur IEEE 754 standardiKayan noktali sayilarin her degisik aygita uyumlu bir gosterime sahip olmasi icin IEEE 754 standardi gelistirilmistir Bu standarda gore kayan noktali sayilarin gosterimi tek duyarli 32 bit ve cift duyarli 64 bit olmak uzere iki sekilde belirlenmistir Bu gosterimlerde sayilar olaganlastirilmis ve ustler ust degerini tutan bit sayisina gore saptirilmistir ust degerini tutan bit sayisi k ise saptirma degeri 2k 1 1 olarak belirlenmistir Tek duyarli gosterim Tek duyarli gosterime gore 32 bitin 1 biti isaret icin 8 biti ust icin ve 23 biti de anlamli kismin gosterimi icin kullanilmaktadir Bu modele gore ust saptirma miktari 127 olarak belirlenmistir Yani ust gosteriminde 127 den buyuk sayilar pozitif 127 den kucuk sayilar negatif ustleri temsil eder Cift duyarli gosterim Cift duyarli gosterimde ise 64 bitin 1 biti isaret 11 biti ust ve 52 biti de anlamli kismi ifade etmek icin kullanilir Ust saptirma degeri 1023 olarak belirlenmistir Bu sekilde 1023 ten buyuk olan sayilar pozitif kucuk olan sayilar ise negatif ustleri gostermektedir OrneklerToplama Kayan noktali sayilar toplanirken izlenecek adimlar sunlardir Toplanacak olan sayilardan kucuk olan sayinin anlamli kismini ustler esitleninceye kadar saga kaydir Anlamli kisimlari topla Gerekiyorsa sayiyi olaganlastir Anlamli kismi gosterimde belirlenmis olan bit sayisina yuvarla Sonuc olagan hale gelene kadar son iki adimi tekrarla Ornegin isaret biti haric 13 bitle 5 bit ust ve 8 bit anlamli kisim gosterilen ve ust saptirma degeri 15 olan asagidaki iki sayi toplanmak istenirse Bu durumda sayilar 11 0010000 ve 0 100110100 seklindedir Toplam ise 11 0010000 0 100110100 11 10111010 olarak elde edilir Anlamli kismin gosteriminde bit sayisi kisitlamasi oldugundan dolayi sayiyi olaganlastirdigimizda sagdaki bitler kaybedilir ve toplam asagidaki sekilde gosterilir Carpma Kayan noktali sayilarda carpma islemi yapilirken Iki sayinin ust degerleri toplanarak sonucun ust degeri elde edilir Ancak bu ust degerleri saptirilmis oldugundan sonucun ust degeri iki kez saptirilmis olarak elde edilir Bu nedenle sonucun ust degerinden saptirma degeri cikarilarak gercek ust degeri bulunur Iki sayinin anlamli kisimlari carpilarak sonucun anlamli kismi hesaplanir Sonuc olaganlastirilir Bit sayisina gore yuvarlama yapilir Ornek olarak 1 biti isaret 8 biti ust ve 4 biti anlamli kismi gosteren ve ust icin saptirma degeri 127 olan olaganlastirlimis iki sayiyi carpalim 0 10000100 0100 x 1 00111100 1100 Sonucun isareti 1 olacaktir Anlamli kisimlari carptigimizda olaganlastirlimis bicimde oldugundan dolyi gosterilmeyen biti de eklenir 1 0100 x 1 1100 00000 00000 10100 10100 10100 1000110000 10 00110000 sonucunu elde ederiz Ustleri hesaplarken 10000100 00111100 11000000 Bu sonuc iki kez kaydirilmis ust degerini verdigi icin kaydirma degeri bir kez cikarilir Sonuc 11000000 01111111 01000001 olarak bulunur Sonuc olaganlastirlir ve anlamli kisim 4 bite yuvarlanirsa carpim asagidaki sekliyle elde edilir 1 01000010 0001Kayan noktada karmasikliklarSayilari kayan noktali sekilde ifade etmek cesitli karmasikliklara yol acabilir Islemlerin daha karmasik olmasi Toplama ve cikarma islemlerinde aritmetik tasmanin yaninda duyarliliktan tasma olasiliginin olmasi Standardin korunmasinin zor olmasi Cok kucuk sayilarin olaganlastirlimis bicimde gosterilmesinin mumkun olmamasi Yuvarlama islemlerin sonsuz veya sayi degil sonuclariyla karsilasma bu karmasikliklardan bazilaridir IEEE 754 standardina gore sonsuz sayi degil gibi kavramlar ve yuvarlama islemi icin de cesitli metotlar gelistirilmistir KaynakcaMichael T Heath 1997 Scientific Computing An Introductory Survey Ingilizce Illinois The McGraw Hill Companies Dis baglantilar 1 13 Agustos 2011 tarihinde Wayback Machine sitesinde Munih Teknik Universitesi Numerik Programlama dersi ders notlari 2 olu kirik baglanti TOBB ETU Bilgisayar Mimarisi dersi ders notlari 3 Bilgisayar Mimarisi Fatih Universitesi Bilgisayar Organizasyonu dersi ders notlari 5 18 Nisan 2007 tarihinde Wayback Machine sitesinde Kayan Nokta Aritmetigi 6 21 Aralik 2007 tarihinde Wayback Machine sitesinde Kayan Nokta Aritmetigi