C + + 中的无符号 double?

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

79234 次浏览

因为典型的浮点数格式不支持无符号数字。

添加一个普通硬件不支持的数字格式只会给编译器编写者带来困难,而且可能不值得这样做。

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

无符号整数可以获得额外的精度,并且与有符号整数的位语义略有不同。Floats 和 double 总是为符号保留一点(在大多数硬件上) ,并且没有位明智的语义,因此使用无符号实类型没有真正的好处。