Floating point number gösterirken 2 üzeri -127 ve 0 aynı değere denk gelmiyor mu?

2 üzeri -127 işleminin sonucunda 0.000…(39 tane sıfır) ve devamında belirli rakamlar geliyor. Print fonksiyonunun hassasiyeti yetmiyordur bunu göstermeye.

Ayarlamak için mesela C’de:
C:
printf(“%.50Lf”, number);
Bu şekilde “0.”dan sonraki basamak sayısını verirsen gerçek değeri görebilirsin.
 
Bilgisayar icin 2 uzeri -127 sifir degil, hayir. int a = 2^1-127 dediysen yada yeterince precision tanimlamadiysan 0 goreceksin cunku sayinin kendisi virgulden sonra ki 39. basamakta basliyor.

Kendin soyle test edebilirsin bilgisayarin onu sifir olarak degerlendirip degerlendirmedigini;
Python:
print((2 ** -127) == 0) # Cikti False olacak
C++:
std::cout << (std::powl(2, -127) == 0); // Cikti 0 olacak. Alternatif olarak false.
 

Technopat Haberler

Yeni konular

Geri
Yukarı