I'd like to be able to pass bit precision, such as 30, so I can return something that'll fit in a signed int without the added bit fiddling.