Fast multiplicationThis tip submitted by Jean-Fran�ois Geyelin on 2005-03-01 05:54:49. It has been viewed 56789 times.Rating of 5.6 with 370 votes It is well known that bit shifting enables programmers to do multiplication when dealing with numbers such as 2, 4, 8, 16, 32, 2^n, ... For instance: a=a<<4; equals a*=16; But multiplying by 100 (and for many other numbers) is also possible: a*=100; equals a= a*64 + a*32 + a*4; equals a=(a<<6)+(a<<5)+(a<<2); Some compilers might optimise this by themselves. Finally, when dealing with floats, you can also do fast multiplications by 2,4,5,6 (or by 10,100,1000 depending on the internal representation of the floats) simply by increasing/decreasing the exponent. More tips Help your fellow programmers! Add a tip! |