Kayan Noktalı Sayılarda İşaret Bitinin Ayarlanması
Önceki Aritmetik İşlevleri Sonraki
Kayan Noktalı Sayılarda İşaret Bitinin Ayarlanması
Kayan noktalı sayılarda elle yapılamayacak kadar karmaşık ve zahmetli bazı işlemler vardır. ISO C99 bu işlemleri yapmak için işlevler tanımlamıştır. Bu işlevler çoğunlukla tek bitlik değişiklikler yaparlar.
double copysign
(double x,
 double y)
float copysignf
(float x,
 float y)
long double copysignl
(long double x,
 long double y)
işlev
Bu işlevler x değerini y'nin işareti ile döndürür. x ya da y NaN ya da sıfır olsa bile bu işlevler çalışır, ayrıca her ikisinin de işareti olabilir (tüm gerçeklemeler bunu desteklemese de). Bu, farklı olduğu söylenebilecek bir kaç işlemden biridir.
copysign hiçbir zaman bir olağandışılığa sebep olmaz.
Bu işlev IEC 559'da tanımlanmıştır (ve IEEE 754/IEEE 854'de, eklerde, önerilen işlevlerden biri olarak).
int signbit
(bir-float-türü x)
işlev
signbit tüm gerçek sayı türleri ile çalışabilen soysal bir makrodur. x değerinin işaret biti birse işlev sıfırdan farklı bir değerle döner.
Bu, x < 0.0 olacak anlamına gelmez, çünkü IEEE 754 kayan noktalılarında sıfırın işaretli olması mümkündür. -0.0 < 0.0 karşılaştırmasının sonucu yanlıştır, fakat signbit (-0.0) çağrısı daima sıfırdan farklı bir değerle döner.
double nextafter
(double x,
 double y)
float nextafterf
(float x,
 float y)
long double nextafterl
(long double x,
 long double y)
işlev
nextafter işlevi x'in y değerine doğru gösterilebilir en yakın komşusu ile döner. Sonuç ile x arasındaki adım boyu sonucun türüne bağlıdır. Eğer x = y ise işlev basitçe y ile döner. Eğer ikisinden biri NaN ise NaN döner. Aksi takdirde ondalık kısım içindeki en kıymetli bitin değerine karşı düşen bir değer yöne bağlı olarak eklenir ya da çıkarılır. Eğer sonuç normalleştirilmiş sayılar aralığının dışına çıkarsa işlev üstten ya da alttan taşma olağandışılığını sinyaller.
Bu işlev IEC 559'da tanımlanmıştır (ve IEEE 754/IEEE 854'de, eklerde, önerilen işlevlerden biri olarak).
double nexttoward
(double      x,
 long double y)
float nexttowardf
(float       x,
 long double y)
long double nexttowardl
(long double x,
 long double y)
işlev
Bu işlevler nextafter ailesi işlevlere benzer, farklı olarak ikinci argüman long double türünde bir değerdir.
double nan
(const char *tagp)
float nanf
(const char *tagp)
long double nanl
(const char *tagp)
işlev
nan işlevi hedef platform tarafından desteklenen NaN gösterimi ile döner. nan ("karakterler") ile strtod ("NAN(karakterler)") eşdeğerdir.
tagp argümanı olarak belirtilebilecekler belirlenmemiştir denebilir. IEEE 754 sistemlerde bir çok NaN gösterimi vardır ve tagp ile bunlardan biri seçilir. Diğer sistemlerde işlev hiçbir şey yapmaz.
Önceki Üst Ana Başlık Sonraki
Kalan İşlevleri Başlangıç Gerçek Sayı Karşılaştırma İşlevleri
Bir Linux Kitaplığı Sayfası