Tag: 钳位

最快的方法来钳制一个真正的(固定/浮点)值?

有没有比使用if语句或三元运算符更有效的方法来限制实数? 我想为双打和32位定点执行(16.16)做这个。 我不是要求可以处理这两种情况的代码; 他们将被分开处理。 显然,我可以做一些事情: double clampedA; double a = calculate(); clampedA = a > MY_MAX ? MY_MAX : a; clampedA = a < MY_MIN ? MY_MIN : a; 要么 double a = calculate(); double clampedA = a; if(clampedA > MY_MAX) clampedA = MY_MAX; else if(clampedA < MY_MIN) clampedA = MY_MIN; 固定点版本将使用函数/macros进行比较。 这是在代码的性能关键部分完成的,所以我正在寻找一种尽可能高效的方式来做到这一点(我怀疑会涉及位操作) 编辑:它必须是标准/便携式C,特定于平台的function在这里没有任何利益。 而且, […]