我正在构建一个iOS应用程序。
我有以下代码:
if(pbCB == 0) { //Don't divide by 0
c = 1;
} else {
c = sqrt(pb / pbCB) * PROTANOPIA_WBP;
}
我真的很想摆脱if语句(上面的代码在for循环内)。
我知道将浮点数除以0,然后将该值转换为无符号char会得到(使用gdb进行测试):
//floating-point division by 0
p 10.0/0
$1 = inf
//casted to an unsigned char
p (unsigned char) (10.0/0)
$2 = 0 '\000'
我想知道的是,是否有一种方法可以将除以0的定义更改为返回1?一位教授告诉我,这是一个硬件/体系结构问题,没有办法解决,但我想看看是否不是这种情况。感谢您的任何答案/想法/建议。
最佳答案
不,你不能。它由浮点规范指定,并在硬件中实现。
关于c++ - 在C++/iOS中更改默认的除以0行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23313263/