接下来,让我们再看一下浮点数之间比较大小的操作,我们以图1.31中的代码为例。在浮点数的编码中,IEEE754引入了一些特殊的编码来表示正无穷大、负无穷大,因为一个正浮点数除以0则得到正无穷大,而一个负浮点数除以0则得到负无穷大;而在实数范畴内,是不能对一个负数进行开根号的,所以IEEE754也引入了一个称为Not ANumber的特殊编码来表示这样的运算结果为“不是一个实数”,简写为NaN。
图1.31 NaN和Inf
运行图1.31的代码,我们会得到以下结果,图1.31的第7行打印出来的结果是个负无穷大”-inf”,而第10打印出来的结果是正穷大”inf”,但第13行打印出来的结果是NaN。
iron@ubuntu:1.5$ gccnan.c -o nan -lm
iron@ubuntu:1.5$./nan
-inf
inf
-nan
iron@ubuntu:1.5$ uccnan.c -o nan
i