Basically, there's no free lunch. Personally, I prefer truncating integer division in combination with a pair of remainder operators.