我知道,这个问题似乎很奇怪.程序员有时想得太多了.请继续往下读.
在C语言中,我经常使用signed
和unsigned
个整数.我喜欢这样一个事实:如果我做了一些事情,比如给一个无符号变量分配一个有符号整数,编译器会警告我.如果我比较有符号整数和无符号整数以及更多的整数,就会收到警告.
我喜欢这些警告.它们帮助我保持代码正确.
我们为什么不能有同样的豪华彩车呢?平方根绝对不会返回负数.在其他地方,负浮动值也没有意义.完美的未签名浮动候选.
顺便说一句,我对从浮动中移除符号位所能获得的额外精度并不感兴趣.我对现在的float
人非常满意.我只想偶尔读mark a float as unsigned,得到与整数相同的警告.
我没有发现任何支持无符号浮点数的编程语言.
知道它们为什么不存在吗?
编辑:
我知道x87FPU没有处理无符号浮点的指令.让我们只使用带符号的浮点指令.误用(例如低于零)可以被认为是未定义的行为,就像有符号整数溢出是未定义的一样.