为什么C ++不支持无符号双语法?
Answers:
因为典型的浮点格式不支持无符号数字。例如,请参阅此IEEE 754格式列表。
添加通用硬件不支持的数字格式只会使编译器编写者的工作变得困难,并且认为这样做不值得。
无符号整数获得额外的精度,并且与带符号整数的位语义略有不同。浮点数和双精度数总是为符号保留一点(在大多数硬件上),并且没有按位语义,因此拥有无符号实数类型并没有真正的好处。
unsigned float x = -3;
并让编译器抱怨。但是,如果您从一个较小的数字中减去一个较大的数字,则大多数硬件将比无符号int捕获到的溢出更多。因此,是的,我承认可能会有好处,但这将是非常微不足道的。