不管结果如何,最快的整数除法支持零除法?
摘要: 我正在寻找最快的计算方法 (int) x / (int) y 毫无例外的y==0。相反,我只想要一个任意结果。 背景: 在对图像处理算法进行编码时,我经常需要除以(累积的)alpha值。最简单的变体是带有整数算术的纯C代码。我的问题是,对于具有的结果像素,通常会得到零除误差alpha==0。但是,这恰好是像素,其结果根本不重要:我不在乎使用的像素的颜色值alpha==0。 细节: 我正在寻找类似的东西: result = (y==0)? 0 : x/y; 要么 result = x / MAX( y, 1 ); x和y是正整数。该代码在嵌套循环中执行了很多次,因此我正在寻找一种摆脱条件分支的方法。 当y不超过字节范围时,我对解决方案感到满意 unsigned char kill_zero_table[256] = { 1, 1, 2, 3, 4, 5, 6, 7, [...] 255 }; [...] result = x / …