我正在为基本类型编写类,这样在多个平台和编译器上的代码在逻辑上是相同的(比如int
的int_least16_t
).为了好玩!(我还是个学生.)
更糟糕的是:
Floating-point types MAY support special values: ∞, NaN or -0
这意味着float可能是无符号的...
我知道这就像__int128,标准只是一个标准,
据我所知,浮动是强制性的(不像int16_t那样是可选的),
我们只有一些宏(<cfloat>
):
-
FLT_MIN
、FLT_MAX
-即使是FLT_MIN = IEEE-754::FLT_MIN
,浮点也可以是非IEEE-754. -
FLT_RADIX
基系统?如果是这样,可以帮助写下确切的值.不过,float可以是3位或200位(大小)... -
FLT_EPSILON
-(从1到下一个)我们可以使用它(带基数)来判断分数大小... -
FLT_MANT_DIG
-是"尾数"数字/分数大小吗? -
FLT_MAX_EXP
-指数填充1...在IEEE-754中,
如果float类似于IEEE-754(符号、指数、分数),那么它很简单,
我看到的唯一出路是向编译器中添加宏.
我知道这是一个理论问题,但我感兴趣的是,当我们使用float
关键字时,是否有任何可能的判断,或者我们都编写依赖于实现的代码?