我正在构建一个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/

10-09 09:04