【发布时间】:2011-05-15 04:47:02
【问题描述】:
扩展你的想法:
#define INFINITY ((1 << (8*sizeof (int) - 6)) - 4)
展开了吗?
【问题讨论】:
-
在什么情况下?为什么需要一个代表无穷大的值?为什么
((1 << (8*sizeof (int) - 6)) - 4)?为什么不使用float或double,因为它们可以表示正/负无穷大? -
我通常会说“一个最终会烧毁你的处理器的循环”......所以是的,这取决于上下文。
-
if (distances[i*MAX_ZONES+j]==INFINITY)
-
在什么情况下距离等于无穷大?
-
32 位
float"infinity" 作为整数的 IEEE 754 表示是0x7F800000,该等式不会产生。
标签: c++ c-preprocessor infinity