View Full Version : Mulplication with fractions .. stuck on this

03-09-2005, 10:09 AM
Im developing a MIDI controller for my digital mixer .. and to send one particular type of sysex requires both division and multiplication of a integer by 12.8

is there are work around i can use to both divide and multiply a value such as 76 by 12.8 ?

the value has a range of 1 to about 127 , and has to be divided by 12.8· basically

any help much app..

03-09-2005, 10:28 AM
I hope this helps -
- Try multiplying 76 by the reciprocal of 12.8 which would be 1/12.8 : The answer is 5.9 the same as if you divided 76 by 12.8 (=5.9)

03-09-2005, 10:30 AM
And be sure to visit this site....the guru of Stamp Math


03-09-2005, 10:44 AM
thanks for the reply , any chance u can give me a snip of what this would look like in 2.5 code?

03-09-2005, 11:14 AM
2 things you can do
1-get a floating point math coprocessor
2-do a lot of fiddling with numbers
its hard to tell you exactly what to do or how to code it because I'm sure mult and div 76 by 12.8 aren't the only numbers you are using.

but for example you could figure that you could mult 76 by 128(12.8*10) right that gives you 9728
now depending on what you want to do with that number thats were you really have to play are you doing a serout/shiftout?
then you would (maybe) have to send
lownum=dig0 9728
serout dpin,baud,(dec3 highnum,".",dec1 lownum)
this is kinda general but it gives you an idea of how you may have to play around with the numbers to get what you looking for.
it really all depend on the final outcome your looking for .


Tracy Allen
03-09-2005, 01:14 PM
' {$PBASIC 2.5}
' assuming you need a decimal output with good precision:
x VAR byte ' range 1 to 127
y VAR word ' x * 12.8, range 12.8 to 1625.6
z VAR word ' x/12.8, range 0.078 to 9.922
DEBUG "enter x (1--127): "
y = x */ 32768 ' multiply: 32768/256= 12.8 * 10
z = x */ 20000 ' multiply: 20000/256=1/12.8 * 1000
DEBUG CR, DEC x, TAB, DEC y/10, "." ,DEC1 y, TAB, DEC z/1000, ".", DEC3 z

Tracy Allen
www.emesystems.com (http://www.emesystems.com)

03-09-2005, 02:37 PM
great! .. thanks for the replys .. i understand the logic now .. thanks again!

03-09-2005, 02:53 PM
one other question however...

I actually need to divide numbers as high as 2400 by 12.8 ........ the above example will only allow me to divide small integers..

thanks again !

03-09-2005, 02:56 PM
Did you visit emesystems.com?·It is explained there with code examples.

03-09-2005, 03:24 PM
Checking it now .. thanks for the help.