Aracılığıyla paylaş


Kayan nokta temel elemanları

Bazı standart C çalışma zamanı kitaplığı (CRT) kayan nokta işlevlerini uygulamak için kullanılan Microsoft'a özgü temel işlevler. Eksiksiz olmaları için burada belgelenmiştir, ancak kullanılması önerilmez. Duyarlık, özel durum işleme ve IEEE-754 davranışına uygunluk sorunları olduğu bilinen bu işlevlerden bazıları kullanılmamış olarak not edilir. Yalnızca geriye dönük uyumluluk için kitaplıkta bulunurlar. Doğru davranış, taşınabilirlik ve standartlara uymak için bu işlevler yerine standart kayan nokta işlevlerini tercih edin.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

_dclass, _ldclass, _fdclass

Sözdizimi

short __cdecl _dclass(double x);
short __cdecl _ldclass(long double x);
short __cdecl _fdclass(float x);

Parametreler

x
Kayan nokta işlev bağımsız değişkeni.

Açıklamalar

Bu kayan nokta ilkelleri, kayan nokta türleri için CRT makrosunun fpclassify C sürümlerini uygular. Bağımsız değişkenin x sınıflandırması, math.h:

Value Açıklama
FP_NAN Sessiz, sinyal veya belirsiz bir NaN
FP_INFINITE Pozitif veya negatif sonsuzluk
FP_NORMAL Sıfır olmayan pozitif veya negatif normalleştirilmiş bir değer
FP_SUBNORMAL Pozitif veya negatif normal olmayan (normal olmayan) bir değer
FP_ZERO Pozitif veya negatif sıfır değeri

Daha ayrıntılı bilgi için Microsoft'a özgü _fpclass, _fpclassf işlevlerini kullanabilirsiniz. fpclassify Taşınabilirlik için makroyu veya işlevi kullanın.

_dsign, _ldsign, _fdsign

Sözdizimi

int __cdecl _dsign(double x);
int __cdecl _ldsign(long double x);
int __cdecl _fdsign(float x);

Parametreler

x
Kayan nokta işlev bağımsız değişkeni.

Açıklamalar

Bu kayan nokta ilkelleri, CRT'de makroyu veya işlevi uygular signbit . İşaret biti bağımsız değişkeninin xişaret işaretinde (mantis) ayarlanırsa sıfır olmayan bir değer döndürürler. Aksi takdirde, işaret biti ayarlı değilse 0 döndürür.

_dpcomp, _ldpcomp, _fdpcomp

Sözdizimi

int __cdecl _dpcomp(double x, double y);
int __cdecl _ldpcomp(long double x, long double y);
int __cdecl _fdpcomp(float x, float y);

Parametreler

x, y
Kayan nokta işlev bağımsız değişkenleri.

Açıklamalar

Bu kayan nokta ilkelleri iki bağımsız değişken x alır ve ymath.h içinde tanımlanan bit düzeyinde veya bu sabitlerin sıralama ilişkisini gösteren bir değer döndürür:

Value Açıklama
_FP_LT x küçük olarak kabul edilebilir y
_FP_EQ x eşit olarak kabul edilebilir y
_FP_GT x daha büyük kabul edilebilir y

Bu temel öğeler CRT'de isgreater, isgreaterequal, isless, islessequal, , islessgreaterve isunordered makrolarını ve işlevlerini uygular.

_dtest, _ldtest, _fdtest

Sözdizimi

short __cdecl _dtest(double* px);
short __cdecl _ldtest(long double* px);
short __cdecl _fdtest(float* px);

Parametreler

px
Kayan nokta bağımsız değişkeninin işaretçisi.

Açıklamalar

Bu kayan nokta ilkelleri, kayan nokta türleri için CRT işlevinin fpclassify C++ sürümlerini uygular. Bağımsız değişken x değerlendirilir ve sınıflandırma math.h dosyasında tanımlanan bu sabitlerden biri olarak döndürülür:

Value Açıklama
FP_NAN Sessiz, sinyal veya belirsiz bir NaN
FP_INFINITE Pozitif veya negatif sonsuzluk
FP_NORMAL Sıfır olmayan pozitif veya negatif normalleştirilmiş bir değer
FP_SUBNORMAL Pozitif veya negatif normal olmayan (normal olmayan) bir değer
FP_ZERO Pozitif veya negatif sıfır değeri

Daha ayrıntılı bilgi için Microsoft'a özgü _fpclass, _fpclassf işlevlerini kullanabilirsiniz. fpclassify Taşınabilirlik için işlevini kullanın.

_d_int, _ld_int, _fd_int

Sözdizimi

short __cdecl _d_int(double* px, short exp);
short __cdecl _ld_int(long double* px, short exp);
short __cdecl _fd_int(float* px, short exp);

Parametreler

px
Kayan nokta bağımsız değişkeninin işaretçisi.

exp
İntegral tür olarak bir üs.

Açıklamalar

Bu kayan nokta ilkelleri, kayan nokta değerine ve üs değerine px expbir işaretçi alır ve kayan nokta değerinin kesirli kısmını mümkünse verilen üssün altında kaldırır. Döndürülen değer, NaN veya sonsuz ise içindeki giriş değerininpx, aksi takdirde çıkış değerinin px sonucudurfpclassify.

_dscale, _ldscale, _fdscale

Sözdizimi

short __cdecl _dscale(double* px, long exp);
short __cdecl _ldscale(long double* px, long exp);
short __cdecl _fdscale(float* px, long exp);

Parametreler

px
Kayan nokta bağımsız değişkeninin işaretçisi.

exp
İntegral tür olarak bir üs.

Açıklamalar

Bu kayan nokta ilkelleri, kayan nokta değerine ve üs değerine px expbir işaretçi alır ve mümkünse değerini px 2'yeexp kadar ölçeklendirir. Döndürülen değer, NaN veya sonsuz ise içindeki giriş değerininpx, aksi takdirde çıkış değerinin px sonucudurfpclassify. Taşınabilirlik için , , ldexplldexpf işlevlerini tercih edin.ldexp

_dunscale, _ldunscale, _fdunscale

Sözdizimi

short __cdecl _dunscale(short* pexp, double* px);
short __cdecl _ldunscale(short* pexp, long double* px);
short __cdecl _fdunscale(short* pexp, float* px);

Parametreler

pexp
İntegral türü olarak bir üs işaretçisi.

px
Kayan nokta bağımsız değişkeninin işaretçisi.

Açıklamalar

Bu kayan nokta temel öğeleri, işaret ettiği px kayan nokta değerini bir işaret işareti (mantis) ve mümkünse bir üs olarak ayırır. İşaret işareti, mutlak değerin 0,5'ten büyük veya buna eşit ve 1,0'dan küçük olması için ölçeklendirilir. Üs, özgün kayan nokta değerinin nölçeklendirilmiş işaret çarpı 2n'ye eşit olduğu değeridir. Bu tamsayı üssü n tarafından pexpişaret edilen konumda depolanır. Döndürülen değer, NaN veya sonsuz ise içindeki giriş değerininpx, aksi takdirde çıkış değerinin sonucudurfpclassify. Taşınabilirlik için , , frexplfrexpf işlevlerini tercih edin.frexp

_dexp, _ldexp, _fdexp

Sözdizimi

short __cdecl _dexp(double* px, double y, long exp);
short __cdecl _ldexp(long double* px, long double y, long exp);
short __cdecl _fdexp(float* px, float y, long exp);

Parametreler

y
Kayan nokta işlev bağımsız değişkeni.

px
Kayan nokta bağımsız değişkeninin işaretçisi.

exp
İntegral tür olarak bir üs.

Açıklamalar

Bu kayan nokta ilkelleri, * 2exp değerine eşit olarak işaret edilen px konumda bir kayan y nokta değeri oluşturur. Döndürülen değer, NaN veya sonsuz ise içindeki giriş değerininy, aksi takdirde çıkış değerinin px sonucudurfpclassify. Taşınabilirlik için , , ldexplldexpf işlevlerini tercih edin.ldexp

_dnorm, _fdnorm

Sözdizimi

short __cdecl _dnorm(unsigned short* ps);
short __cdecl _fdnorm(unsigned short* ps);

Parametreler

ps
bir dizi olarak ifade edilen kayan nokta değerinin bit düzeyinde gösterimine yönelik unsigned shortişaretçi.

Açıklamalar

Bu kayan nokta ilkelleri, taşan kayan nokta değerinin kesirli kısmını normalleştirir ve karakteristik veya taraflı üs değerini eşleşecek şekilde ayarlar. Değer, math.h dosyasında bildirilen , _ldouble_valveya _float_val tür punning birleşimi aracılığıyla _double_valbir dizisine unsigned short dönüştürülen kayan nokta türünün bit düzeyinde gösterimi olarak geçirilir. Dönüş değeri, NaN veya sonsuz ise giriş kayan nokta değerinin, aksi takdirde çıkış değerinin sonucudur fpclassify .

_dpoly, _ldpoly, _fdpoly

Sözdizimi

double __cdecl _dpoly(double x, double const* table, int n);
long double __cdecl _ldpoly(long double x, long double const* table, int n);
float __cdecl _fdpoly(float x, _float const* table, int n);

Parametreler

x
Kayan nokta işlev bağımsız değişkeni.

table
Polinom için sabit katsayılardan oluşan bir tablo işaretçisi.

n
Polinomların değerlendirilme sırası.

Açıklamalar

Bu kayan nokta ilkelleri, katsayıları içindeki karşılık gelen sabit değerlerle temsil edilen sıra n polinomunda tabledeğerini x döndürür. Örneğin, table[0] = 3.0, table[1] = 4.0, table[2] = 5.0 ve n = 2 ise, polinomsal 5.0x2 + 4.0x + 3.0'ı temsil eder. Bu polinom değeri 2,0 olarak değerlendirilirse x sonuç 31,0 olur. Bu işlevler dahili olarak kullanılmaz.

_dlog, _dlog, _dlog

Sözdizimi

double __cdecl _dlog(double x, int base_flag);
long double __cdecl _ldlog(long double x, int base_flag);
float __cdecl _fdlog(float x, int base_flag);

Parametreler

x
Kayan nokta işlev bağımsız değişkeni.

base_flag
Kullanılacak tabanı denetleyen bayrak, e tabanı için 0 ve 10 tabanı için sıfır olmayan.

Açıklamalar

Bu kayan nokta temel öğeleri, 0 olduğunda base_flag doğal günlüğünü x (ln(x) veya günlüke(x)) döndürür. Sıfır olmayan bir durumdayken base_flag günlük tabanı 10 değerini xveya 10(x) günlüğünüdöndürür. Bu işlevler dahili olarak kullanılmaz. Taşınabilirlik için , , , logflog10logl, log10fve log10lişlevlerini logtercih edin.

_dsin, _ldsin, _fdsin

Sözdizimi

double __cdecl _dsin(double x, unsigned int quadrant);
long double __cdecl _ldsin(long double x, unsigned int quadrant);
float __cdecl _fdsin(float x, unsigned int quadrant);

Parametreler

x
Kayan nokta işlev bağımsız değişkeni.

quadrant
, cos, -sinve -cos sonuçları üretmek siniçin kullanmak üzere 0, 1, 2 veya 3'ün çeyrek uzaklığı.

Açıklamalar

Bu kayan nokta ilkelleri modül 4 ile quadrant uzaklık x sinüsünü döndürür. Etkili bir şekilde modül 4 sırasıyla 0, 1, 2 veya 3 olduğunda quadrant sinüs, kosinüs, -sinüs ve -kosinüsünü x döndürürler. Bu işlevler dahili olarak kullanılmaz. Taşınabilirlik için , , sinf,sinl , cos, cosfişlevlerini cosltercih edin.sin

Gereksinimler

Üst bilgi: <math.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Ayrıca bkz.

Matematik ve kayan nokta desteği
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnan, _isnan, _isnanf
isnormal
cos, cosf, cosl
frexp, frexpf, frexpl
ldexp, ldexpf, ldexpl
log, logf, logl, , log10, log10f, log10l
sin, sinf, sinl