- Published on
Floating Point Gösterimi Nedir? IEEE 754 Standartları[Çözümlü Örneklerle]
- Authors
- Name
- Alperen Önal
Floating Point (Kayan Noktalı) gösterimi, bilgisayarda çok küçük ya da çok büyük ondalık sayıları verimli ve efektif şekilde depolamak, temsil etmek ve işlem yapmak için kullanılan bir yöntemdir.
Kullanmasaydık ne olurdu?:
- Underflow, gerekli hassasiyet sağlanamazdı.
- Overflow, bellekte yeterli alan olmadığında taşmalar meydana gelirdi.
- Matematiksel işlemler (çarpma, bölme vs.) çok yavaş ve karmaşık olurdu.
- Bellek ve işlemci kaynakları aşırı tüketilirdi.
- Bilimsel ve mühendislik işlemlerini gerçekleştirmek imkansız olurdu.
gibi sorunlarla karşılaşabilirdik.
Üstel Gösterim(Scientific notation, exponential notation)
- F:Fraction (Kesir, Mantissa)
- E:Exponent (Üs)
- B: Base (Taban)
Bellekte , F ve E tutulur. Taban B'nin bellekte tutulmasına gerek yoktur. Çünkü tüm sayılar için aynıdır. Örneğin 2lik taban için base 2'dir. 10luk taban için base 10'dur. Bilgisayarlar da 2'lik tabanda işlem yaptığı için bu base değerini 2 olarak kabul ederiz ve saklamayız.
Örnek:135 000 000 000 =
Bu örnekte + (sign), 135 (fraction), 12 (exponent) bellekte tutulacaktır.
Normalizasyon (Normalize Sayı)
Bir önceki örneğe bakacak olursak 135 000 000 000 sayısının çeşitli üstel gösterimleri olabilir.
Örneğin:
- 135 000 000 000 = = =
Bu kafa karışıklığını ortadan kaldırmak için normalize gösterim yöntemini kullanırız. Genellikle bu yöntem; noktanın her zaman sıfırdan farklı en yüksek anlamlı sayının solunda olacağı şekilde kabul edilir ve E(exponent) ona göre ayarlanır.
Örneğin:
- 23.90 normalizasyon ->
- Yani, 23.90 sayısı bellekte + (sign), 2390 (fraction), 2 (exponent) şeklinde tutulacaktır.
- ⚠️Unutmayın başka normalizasyon yöntemleri de vardır. Örneğin, buradaki noktanın konumu kullanılan normalizasyon yöntemine göre değişebilir.
Biased Exponent Nedir?
Üs değerleri de işaretli sayılardır. Üs değerlerini işaretsiz olarak saklayarak, donanımlarda üs işlemlerini daha basit ve hızlı hale getirmek için biased exponent yöntemini kullanırız.
Yani üs değerlerini doğrudan bellekte saklamak yerine önce bias değerinden çıkartıyoruz. Bu da, üssün işaretinin saklanmasını gereksiz kılar ve aritmetik işlemlerde(karşılaştırmalarda) kolaylık sağlar.
IEE 754 Standartı
IEEE 754 Standardı, bilgisayarların ondalık (float) ve kesli sayı sistemlerini binary formatta temsil etmesi, saklaması ve işlemesi için kullanılan uluslararası bir standarttır. Bu standart, özellikle kayan noktalı sayıların (floating point numbers) nasıl işleneceğini tanımlar. Günümüzde bir çok sistem tarafından kullanılmaktadır.
Standardın Çıkış Nedenleri:- Kesirli sayıları ve çok büyük ya da çok küçük sayıları temsil etmeyi kolaylaştırmak.
- Sayılar üzerinde işlem yaparken doğruluk, hassasiyet ve performansı korumak.
- Farklı bilgisayar donanımları arasında standardı sağlayarak farklı sistemlerin aynı şekilde çalışmasını kolaylaştırmak.
E'deki bit sayısı "k" olmak üzere, Bias değeri =
IEEE 754 Normalizasyonu :- Nokta, her zaman sıfırdan farklı en yüksek anlamlı sayının sağındadır.
- Binary tabanda çalışıldığı için sıfırdan farklı sayı her zaman 1 olacaktır.
- Noktanın solunda her zaman 1 olacağı bilindiği için buradaki 1 bellekte tutulmayacaktır. Bu 1'e hidden one denir.
Decimal to Binary
IEEE 754 Normalizasyonu
Biased Exponent'in Bias ile Hesaplanması
- IEEE 754 Single için,
- -> 8 bitlik exponent
IEEE 754 Formatını Birleştirme
- Sign Bit(S): 1 (negatif olduğu için)
- Biased Exponent(E): 10000100
- Fraction(F): 01101001000000000000000 (23-bit olacak şekilde sıfırlarla doldurulur.)
Sonuç:
- 1 10000100 01101001000000000000000
Örnek Soru 2: IEEE 754 Single formatında "0 10000010 10100000000000000000000" temsil edilen decimal sayıyı bulun.
IEEE 754 Formatını Ayrıştırma
- Sign Bit(S): + (0 olduğu için)
- Biased Exponent(E):
- Fraction(F): 10100000000000000000000
Gerçek Exponent(Unbiased Exponent)'i Bias ile Bulma
- IEEE 754 Single için,
Değerleri Bir Araya Getirme
Binary to Decimal - -
Exponent ile Decimal Sayıyı Çarp
Sonuç
- 13.0
Not:
Eğer bias sayısı eklenmişse (IEEE 754'de exponent'in saklanacağı Format) -> Biased Exponent
Eğer bias sayısı eklenmemişse -> Unbiased Exponent
olarak adlandırılır.
Bir sonraki yazıda görüşmek üzere.