浮點數基本類型
Microsoft特定基本函式,用來實作一些標準 C 運行時間連結庫 (CRT) 浮點函式。 本文記載為完整性,但不建議使用。 其中有些函式會指出為未使用,因為它們已知有精確度、例外狀況處理和 IEEE-754 行為的一致性問題。 它們只存在於連結庫中,以提供回溯相容性。 為了正確行為、可移植性和遵守標準,偏好標準浮點函式而不是這些函式。
根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。
_dclass
、 、 _ldclass
_fdclass
語法
short __cdecl _dclass(double x);
short __cdecl _ldclass(long double x);
short __cdecl _fdclass(float x);
參數
x
浮點函式自變數。
備註
這些浮點基本類型會針對浮點類型實作CRT巨集 fpclassify
的 C 版本。 自變數 x
的分類會傳回為下列其中一個常數,定義於math.h:
值 | Description |
---|---|
FP_NAN |
無訊息、訊號或不確定的 NaN |
FP_INFINITE |
正或負無限大 |
FP_NORMAL |
正或負標準化非零值 |
FP_SUBNORMAL |
正負次正規值(反正規化) 值 |
FP_ZERO |
正或負零值 |
如需詳細資訊,您可以使用Microsoft特定的 _fpclass
、 _fpclassf
函式。 fpclassify
使用巨集或函式進行可移植性。
_dsign
、 、 _ldsign
_fdsign
語法
int __cdecl _dsign(double x);
int __cdecl _ldsign(long double x);
int __cdecl _fdsign(float x);
參數
x
浮點函式自變數。
備註
這些浮點基本類型會在CRT中實 signbit
作巨集或函式。 如果符號位是在自變數 x
的符號和mantissa 中設定,則會傳回非零值。 否則,如果未設定符號位,則會傳回 0。
_dpcomp、_ldpcomp、_fdpcomp
語法
int __cdecl _dpcomp(double x, double y);
int __cdecl _ldpcomp(long double x, long double y);
int __cdecl _fdpcomp(float x, float y);
參數
x
, y
浮點函式自變數。
備註
這些浮點基本類型會採用兩個自變數 和 x
y
,並傳回一個值,其顯示其排序關聯性,以位或這些常數來表示於math.h 中:
值 | Description |
---|---|
_FP_LT |
x 可視為小於 y |
_FP_EQ |
x 可視為等於 y |
_FP_GT |
x 可視為大於 y |
這些基本類型會在CRT中實isgreater
作、isgreaterequal
、isless
、、islessequal
、和 isunordered
islessgreater
巨集和函式。
_dtest、_ldtest、_fdtest
語法
short __cdecl _dtest(double* px);
short __cdecl _ldtest(long double* px);
short __cdecl _fdtest(float* px);
參數
px
浮點自變數的指標。
備註
這些浮點基本類型會針對浮點類型實作CRT fpclassify
函式C++版本。 系統會評估自變數 x
,並以math.h中定義的其中一個常數傳回分類:
值 | Description |
---|---|
FP_NAN |
無訊息、訊號或不確定的 NaN |
FP_INFINITE |
正或負無限大 |
FP_NORMAL |
正或負標準化非零值 |
FP_SUBNORMAL |
正負次正規值(反正規化) 值 |
FP_ZERO |
正或負零值 |
如需詳細資訊,您可以使用Microsoft特定的 _fpclass
、 _fpclassf
函式。 使用函 fpclassify
式進行可移植性。
_d_int、_ld_int、_fd_int
語法
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);
參數
px
浮點自變數的指標。
exp
指數做為整數型別。
備註
這些浮點基本類型會盡可能取得浮點值 px
和指數值的 exp
指標,並盡可能移除指定指數下方浮點值的分數部分。 如果輸入值是 NaN 或無限大,則傳回的值是 中px
輸入值的結果fpclassify
,否則會傳回輸出值px
。
_dscale、_ldscale、_fdscale
語法
short __cdecl _dscale(double* px, long exp);
short __cdecl _ldscale(long double* px, long exp);
short __cdecl _fdscale(float* px, long exp);
參數
px
浮點自變數的指標。
exp
指數做為整數型別。
備註
這些浮點基本類型會盡可能取得浮點值 px
和指數值的 exp
指標,並在 中 px
將值調整為 2exp
。 如果輸入值是 NaN 或無限大,則傳回的值是 中px
輸入值的結果fpclassify
,否則會傳回輸出值px
。 為了可移植性,偏好 、 ldexpf
ldexpl
函ldexp
式。
_dunscale、_ldunscale、_fdunscale
語法
short __cdecl _dunscale(short* pexp, double* px);
short __cdecl _ldunscale(short* pexp, long double* px);
short __cdecl _fdunscale(short* pexp, float* px);
參數
pexp
以整數型別表示之指數的指標。
px
浮點自變數的指標。
備註
如果可能的話,這些浮點基本類型會將 所 px
指向的浮點值分解成正負號和指數。 正負數會縮放,讓絕對值大於或等於0.5且小於1.0。 指數是 值 n
,其中原始浮點值等於縮放正負號 2n。 這個整數指數 n
會儲存在 所 pexp
指向的位置。 如果輸入值是 NaN 或無限大,則傳回的值是 中px
輸入值的結果fpclassify
,否則會傳回輸出值。 為了可移植性,偏好 、 frexpf
frexpl
函frexp
式。
_dexp、_ldexp、_fdexp
語法
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);
參數
y
浮點函式自變數。
px
浮點自變數的指標。
exp
指數做為整數型別。
備註
這些浮點基本類型會以等於 y
* 2exp 在指向px
的位置建構浮點值。 如果輸入值是 NaN 或無限大,則傳回的值是 中y
輸入值的結果fpclassify
,否則會傳回輸出值px
。 為了可移植性,偏好 、 ldexpf
ldexpl
函ldexp
式。
_dnorm,_fdnorm
語法
short __cdecl _dnorm(unsigned short* ps);
short __cdecl _fdnorm(unsigned short* ps);
參數
ps
以陣列 unsigned short
表示之浮點值的位表示指標。
備註
這些浮點基本類型會將下溢浮點值的分數部分正規化,並調整 特性或偏差指數以比對。 值會傳遞為浮點型別的位表示法,其會透過math.h中宣告的_double_val
、_ldouble_val
或 _float_val
型別標點聯集,轉換成的陣列unsigned short
。 如果輸入浮點值是 NaN 或無限大,則傳回值是輸出值的結果 fpclassify
,否則為輸出值。
_dpoly、_ldpoly、_fdpoly
語法
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);
參數
x
浮點函式自變數。
table
多項式常數係數數據表的指標。
n
要評估的多項式順序。
備註
這些浮點基本類型會傳回 x
的多項式順序 n
評估,其係數是由 中的 table
對應常數值表示。 例如,如果 table[0]
= 3.0、 table[1]
= 4.0、 table[2]
= 5.0 和 n
= 2,則代表多項式 5.0x 2 + 4.0x+ 3.0。 如果這個多項式評估 x
為 2.0,則結果為 31.0。 這些函式不會在內部使用。
_dlog、_dlog、_dlog
語法
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);
參數
x
浮點函式自變數。
base_flag
旗標,控制要使用的基底,0 用於基底 e ,基底 10 為非零。
備註
當 為 0 時,這些浮點基本類型會傳回 (ln(x) 或 log e(x)base_flag
的自然記錄。x
當 為非零時base_flag
,它們會傳回 的x
記錄基底 10 或 log10(x)。 這些函式不會在內部使用。 為了可移植性,偏好函式、、logf
logl
、log10
、log10f
、 和 log10l
。log
_dsin、_ldsin、_fdsin
語法
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);
參數
x
浮點函式自變數。
quadrant
0、1、2 或 3 的象限位移,用來產生 sin
、 cos
、 -sin
和 -cos
結果。
備註
這些浮點基本類型會傳quadrant
回模數 4 的x
位移正弦值。 實際上,當模數 4 分別為 0、1、2 或 3 時quadrant
,它們會傳回 的正弦、餘弦、-正弦值和餘弦x
值。 這些函式不會在內部使用。 為了可移植性,偏好 sin
、、sinl
sinf
、cos
、、 cosl
cosf
函式。
需求
標頭: <math.h>
如需相容性詳細資訊,請參閱相容性。
另請參閱
數學與浮點支援
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