C ++中的无符号双精度?

时间:2010-03-26 11:56:39

标签: c++ double unsigned

为什么C ++不支持无符号双重语法?

3 个答案:

答案 0 :(得分:67)

因为典型的浮点格式不支持无符号数。例如,请参阅this list of IEEE 754 formats

添加普通硬件不支持的数字格式只会让编译器编写者感到生活困难,而且可能不值得付出努力。

答案 1 :(得分:14)

C ++不支持无符号浮点类型,因为大多数浮点硬件不支持无符号浮点类型。有些图形卡可以使用无符号浮点数,但它通常是内部的,对程序或用户来说并不是真的可见。

答案 2 :(得分:7)

无符号整数获得额外的精度,并且对于有符号整数具有略微不同的逐位语义。浮点数和双精度数总是为符号保留一点(在大多数硬件上)并且没有按位语义,因此使用无符号实数类型没有任何实际好处。