【发布时间】:2012-02-16 17:57:11
【问题描述】:
共有三种二进制浮点基本格式(可使用 32、64 或 128 位编码)和两种十进制浮点基本格式(可使用 64 或 128 位编码)。
这张图表在它下面。在 C++ 中,我相信 float 和 double 是单精度和双精度(binary32 和 binary64)。
Name Common name Base Digits E min E max Digits E max
binary32 Single precision 2 23+1 −126 +127 7.22 38.23
binary64 Double precision 2 52+1 −1022 +1023 15.95 307.95
binary128 Quadruple precision 2 112+1 -16382 +16383 34.02 4931.77
decimal32 10 7 −95 +96 7 96
decimal64 10 16 −383 +384 16 384
decimal128 10 34 −6143 +6144 34 6144
我可以为decimalX 使用什么类/结构,有什么可以用于binary128 的吗?这些类/结构是标准的还是非标准的?
【问题讨论】:
-
什么系统?例如,对于 PowerPC Mac,
long double等效于图表中的binary64,可选择使用binary128,而在 Intel Mac 上,long double是 80 位。 (虽然后者有 128 位存储) -
C++ 没有详细说明
float、double和long double是如何表示的。据你所知,他们三个都可能是decimal128。
标签: c++ floating-point decimal