Fixed bug introduced in PR#803 caused by casting

Also changed casts to C++ style casts to removed some of the ambiguity. 

[PR#803](https://github.com/dolphin-emu/dolphin/pull/803)
Sorry about introducing this bug. Hopefully this fixes it correctly. The original code had one of the addends being promoted to a double. This means it could have been negative. My original change removed the possibility for this addend to be negative, introducing the bug. This fix also doesn't introduce any warnings on VS2013, but I haven't had a chance to check it on Linux. 

I also took this opportunity to change the casts to C++ style casts on archshift's recommendation.