~ avoid overflow and long conversion at the same time