handle 64 bit cases too,
and unsigned divide