# Re: Q: division vs multiplication

## Roger Barnett <Roger@natron.demon.co.uk>Fri, 28 Apr 1995 19:36:38 GMT

From comp.compilers

Related articles
[11 earlier articles]
Re: Q: division vs multiplication leichter@zodiac.rutgers.edu (1995-04-11)
Re: Q: division vs multiplication kptben@aol.com (1995-04-17)
Re: Q: division vs multiplication pcg@aber.ac.uk (1995-04-17)
Re: Q: division vs multiplication gsc@magna.com.au (1995-04-18)
Re: Q: division vs multiplication jbuck@Synopsys.COM (1995-04-28)
Re: Q: division vs multiplication davidm@flora.Rational.com (1995-04-28)
Re: Q: division vs multiplication Roger@natron.demon.co.uk (Roger Barnett) (1995-04-28)
Re: Q: division vs multiplication jmccarty@spdmail.spd.dsccc.com (1995-04-29)
| List of all articles for this month |

 Newsgroups: comp.compilers From: Roger Barnett Keywords: arithmetic Organization: Natron Software Maintenance Ltd References: 95-04-135 Date: Fri, 28 Apr 1995 19:36:38 GMT

gsc@magna.com.au writes:
> The problem here is that -1 divided by 2 should give -1, with a remainder
> of +1. Unfortunately, it's hard to find hardware that does this right.
> Most HLLs (even C!) leave division of negative integers to the conscience
> of the implementor, though. The obvious solution is to implement division
> to round towards -infinity _in all cases_, and you can then use shifts
> with a clear conscience.

Surely the correct approach is for the language definition to state
explicitly what the rules are for truncation, rounding, etc. - then
the programmer knows what to expect in any given situation.

In the extracted text above, if

-1 :/ 2 = -1, { where :/ is integer division )

then

- (-1 :/ 2) = 1 <> 1 :/ 2

which seems counter-intuitive to me.

--
Roger Barnett
Natron Software Maintenance Ltd, York, England
--

Post a followup to this message