我知道,这个问题看起来很奇怪。程序员有时想得太多了。请继续阅读..。
在 C 语言中,我经常使用 signed
和 unsigned
整数。我喜欢这样一个事实: 如果我将一个有符号整数赋值给一个无符号变量,编译器会提醒我。如果我将有符号整数和无符号整数进行比较,就会得到警告。
我喜欢这些警告,它们帮助我保持代码正确。
为什么我们不能享受同样的奢侈呢?平方根绝对不会返回负数。还有一些地方负浮点值没有任何意义。完美的候选人,一个未签名的花车。
顺便说一句,我并不十分热衷于通过从浮点数中移除符号位来获得额外的精确度。我对 float
非常满意,因为它们现在就是这样。我只是想有时 将浮动标记为无符号,并得到同样的警告,我得到与整数。
据我所知,没有任何编程语言支持无符号浮点数。
知道为什么它们不存在吗?
我知道 x87FPU 没有处理无符号浮点数的指令。让我们使用已签名的 float 指令。错误使用(例如低于零)可以被认为是未定义的行为,就像有符号整数的溢出是未定义的一样。