Kayan Noktalı Sayılar

Kayan noktalı sayılar, sayısal ortamda gerçek sayıların bir gösterim biçimidir. Hassas işlem yapma özelliğine sahip kayan noktalı sayılar, dinamiklik özelliği ile de geniş sayı gösterim aralığı imkânı sunmaktadırlar. En çok kullanılan kayan noktalı sayı gösterim standardı IEEE 754 standardıdır.  Tek duyarlı (32 bit) IEEE 754 standardı gösterim formatı Şekil 1’de verilmiştir.

Şekil 1.  IEEE 754 Kayan-noktalı sayı gösterimi

Şekil-1 ‘de gösterildiği gibi IEEE 754 standartına göre 32 bit kayan noktalı sayıların bit düzeyindeki veri yapısında, bit dizisindeki bitlerin bir kısmı üs, bir kısmı çarpan olarak kullanılırken 1 tanede işaret biti kullanılmıştır. Şekil-1’de gösterilen 32 bit kayan noktalı sayı haritasına göre en anlamlı bit işaret biti olarak kullanılırken, 8 biti üs ve 23 biti de çarpan olarak ayrılmıştır. 10 tabanına göre en küçük sayı -10-38 be en büyük sayı 1038 olmaktadır.

Kayan noktalı sayı formatında verilen sayının dönüşümü için aşağıdaki denklem kullanılır.,

Sayı=(-1)s . (1.f) . 2e-bias

i: İşaret bitini temsil etmektedir. İşaret biti sıfırsa sayının pozitif, bire eşitse negatif olduğunu belirtir.

bias: IEEE 754 standartlarında verilen ve üs sayısından çıkarılan değerdir. Üs değerinin bit sayısı ile ilişkilidir. n bitlik üs ifadesi için bias değeri 2n-1-1 şeklinde hesaplanır. 8 bit için bu değer 127 olmaktadır.

f: Burada çarpan olarak verilmektedir. Bu sayı daima sıfır ile bir arasında olmalıdır.  

e-bias (floor(log2Sayı)): Bu ifade verilen sayının 2’nin e-bias kuvvetine eşit veya büyük, e-bias+1 kuvvetinden küçük olduğu değeri gösterir. 4’e eşit ve 8’den küçük tüm sayılar için bu değer 2 olmaktadır. bias değeri 127 olduğunda e üs ifadesi ise 129 olmaktadır.

Şimdi yukarıda verdiğimiz denklem ile 7 sayısını 32 bitlik kayan noktalı sayıya dönüştürelim.

7>0 olduğu için s=0 olur.

2≤ 7 < 23 -> e-bias=2 olur.

e=127+2=129=(10000001)2

7=(-1)0 . (1.k) . 22

1,75 = 1.f -> f=0,75

Ondalık sayıyı ikili düzene çevirirken tam kısmı sürekli ikiye bölerek kalanları  sondan başa doğru yazarak tam sayı kısmını ikilik sayı sisteminde ifade etmiş oluruz. Bu ifadede tam sayı her zaman sıfır olacağından dolayı  sadece ondalık kısım çevrilecektir. Ondalık kısmın çevrimi aşağıda gösterilmiştir.

0,75 * 2 = 1,5 →        1

0,5 * 2   = 1    →        1

0 * 2      = 0    →        0

Eğer çarpma işlemleri esnasında  sıfır elde ediliyorsa işleme son verilir. Çarpan kısmında 23 bitlik sayı kullandığımız için ilk iki bit bir diğer bitler sıfır olacaktır. 7 sayısının IEEE 754 standardına göre 32 bitlik gösterimi Şekil-2’de gösterilmiştir.

Şekil-2   7 sayısının IEEE 754 Standardına Göre 32 Bitlik Kayan Noktalı Sayı Gösterimi

 Şimdi  32 bitlik 7 sayısını gerçel sayıya dönüştürelim.

f= 2-1 x 1 + 2-2 x 1 + 2-3 x 0 + ……………+ 2-22 x 0 + 2-23 x 0 = 0,75

e=129

e-bias=129-127=2

s=0
sayi=(-1)0 x (1 +0,75) x 2= 1,75 x 4 = 7
elde edilir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir