为什么C++不支持无符号双精度语法?
C ++不支持无符号浮点类型,因为大多数浮点硬件不支持无符号浮点类型。一些图形卡可以使用无符号浮点数,但通常是内部使用的,对程序或用户来说并不真正可见。
无符号整数比有符号整数多了一位精度,并且具有略微不同的按位语义。浮点数和双精度浮点数始终为符号保留一位(在大多数硬件上),并且没有按位语义,因此使用无符号实数类型没有实际好处。
unsigned float x = -3;
,但编译器会报错。但是如果从一个较大的数中减去一个较小的数,大多数硬件都不会像对待无符号整数一样检测溢出。所以,是的,我承认可能会有一些好处,但非常微小。 - Marcelo Cantos