cc++中如何定义无穷大

Python012

cc++中如何定义无穷大,第1张

c/c++ 采用国际标准 IEEE-754标准表示浮点数。

有具体的规定。例如单精度,双精度,例如符号位,实际指数,有偏移指数,指数域,尾数域。

例如,32位 单精度中的:正无穷,符号位=0,实际指数=128,有偏移指数=255,指数域=1111,尾数域=000 0000 0000 0000, 或 尾数域=0000 0000。+∞。

负无穷,符号位=1,其它与 正无穷 一样。−∞。非数,NaN, 符号位可能是1,也可能是0,实际指数=128,有偏移指数=255,指数域=1111,尾数域= 非0 的数字。NaN。

其余情况,请自己去查 IEEE-754。概括说:无穷 指数全1,小数位0。 非数, 指数全1,小数位 非0。正负 看符号位。

扩展资料:

C语言的发展过程:当代最优秀的程序设计语言。

早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。

C语言是当今最流行的程序设计语言之一,它的功能丰富、表达力强、使用灵活方便、应用面广、目标程序高、可植入性好,既有高级语言的特点,又有低级语言的许多特点,适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。

C语言诞生后,许多原来用汇编语言编写的软件,现在都可以用C语言编写了(如UNIX操作系统),而学习和适用C语言要比学习和适用汇编语言容易得多。

参考资料来源:百度百科-C/C++

inf :infinity (linux) 等同于 #INF:infinity (windows)nan :not a number 等同于 #IND:indeterminate (windows)注意:1、inf一般是因为得到的数值,超出浮点数的表示范围(溢出,即阶码部分超过其能表示的最大值);而nan一般是因为对浮点数进行了未定义的操作,如对-1开方。2、nan==nan 结果是0或false,即不能和nan进行比较,和nan进行比较得到的结果总是false或0。所以可以用函数: int isNumber(double d){return (d==d)}来判断d是否为nan,若d是nan则返回0,否则返回非零值。3、1.0/0.0等于inf,-1.0/0.0等于-inf,0.0+inf=inf;4、对负数开方sqrt(-1.0)、对负数求对数(log(-1.0))、0.0/0.0、0.0*inf、inf/inf、inf-inf这些操作都会得到nan。(0/0会产生操作异常;0.0/0.0不会产生操作异常,而是会得到nan)5、得到inf时就查看是否有溢出或者除以0,得到nan时就查看是否有非法操作。6、C语言的头文件<float.h>中,有定义的常量DBL_MAX,这个常量表示“能表示出来的最大的双精度浮点型数值”。<float.h>中还有常量DBL_MIN,DBL_MIN表示可以用规格化表示的最小的正浮点数,但DBL_MIN并不是最小的正浮点数,因为可以用可以用非规格化浮点数表示的更小。可以用函数:int isFiniteNumber(double d){return (d<=DBL_MAX&&d>=-DBL_MAX)}来判断d是否为一个finite数(既不是inf,又不是nan(加入d为nan,则d参加比较就会得到false(0)值))。7、1.0/inf等于0.0。8、inf是可以与其他浮点数进行比较的,即可以参与<=、>+、==、!=等运算。 下面这几个宏(用宏实现的,使用时跟函数的形式基本相同)是判断一个表达式的结果是否为inf、nan或其他:头文件:include<math.h>宏的用法(类似于函数原型):int fpclassify(x)int isfinite(x)int isnormal(x)int isnan(x)int isinf(x)具体用法:1、int fpclassify(x) 用来查看浮点数x的情况,fpclassify可以用任何浮点数表达式作为参数,fpclassify的返回值有以下几种情况。FP_NAN:x是一个“not a number”。FP_INFINITE: x是正、负无穷。FP_ZERO: x是0。FP_SUBNORMAL: x太小,以至于不能用浮点数的规格化形式表示。FP_NORMAL: x是一个正常的浮点数(不是以上结果中的任何一种)。2、int isfinite(x) 当(fpclassify(x)!=FP_NAN&&fpclassify(x)!=FP_INFINITE)时,此宏得到一个非零值。3、int isnormal(x) 当(fpclassify(x)==FP_NORMAL)时,此宏得到一个非零值。4、int isnan(x) 当(fpclassify(x)==FP_NAN)时,此宏返回一个非零值。5、int isinf(x) 当x是正无穷是返回1,当x是负无穷时返回-1。(有些较早的编译器版本中,无论是正无穷还是负无穷,都返回非零值,不区分正负无穷)。