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

los*_*den 63 c++ double unsigned

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

unw*_*ind 68

因为典型的浮点格式不支持无符号数.例如,请参阅此IEEE 754格式列表.

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

  • 呃,不,那不是重点.或者如果它是重点,那么所有浮点类型都注定要失败.可以在计算机中以有意义的方式表示的数字集是可数的...... (27认同)
  • * idea *也带有浮点数。该** Any **数字应可表示,包括负整数到无穷大。无符号数字会适得其反。 (2认同)

Jer*_*fin 14

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


Mar*_*tos 7

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

  • 理论上你*可以*将该位用于尾数或指数,但增加范围或精度. (10认同)
  • 好吧,我想要一个 unsigned double 来控制它始终是一个正数,而无需继续检查它。所以是的,有好处。 (2认同)
  • 当然,对于无符号双重类型,存在_reason_ - 更好的类型安全性. (2认同)