fixed bug with undefined behaviour when shifting left by 32 or more