The regular division symbol always converts its arguments to floating
point before dividing, similar to how integer division converts its
arguments to integers before dividing.
Multiplication wasn't using the ParseNum helper methods and as a result
wasn't setting num.ui, resulting in the wrong answer when using
unsigned.
I additionally switch it to use the proper signed vs unsigned type when
doing the multiplication.
This moves the CONST replacement up before we turn the elements into a
single string. The advantage is that we don't have to worry about
splitting the string properly to find the CONST names as the elements
are already split for us.t