I have the following formula
float mean = (r+b+g)/3/255.0f;
I want to speed it up. There are the following preconditions
0<= mean <= 1 and 0 <= r,g,b <= 255 and r, g, b are unsigned chars
so if I try to use the fact that >> 8 is like dividing by 256 and I use something like
float mean = (float)(((r+b+g)/3) >> 8);
this will always return 0. Is there a way to skip the costly float division and still end up with a mean between 0 and 1?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…