I prefer bitshifting
Reversing the string simplifies the algorithm and bit-shifting is more efficient