22 May 1999 02:57:53 -0400

Related articles |
---|

[10 earlier articles] |

Re: Rounding with Div and Mod operators sofkam@rpi.edu (1999-05-20) |

Re: Rounding with Div and Mod operators drh@microsoft.com (Dave Hanson) (1999-05-20) |

Re: Rounding with Div and Mod operators anton@mips.complang.tuwien.ac.at (1999-05-20) |

Re: Rounding with Div and Mod operators peter.r.wilson@boeing.com (Peter Wilson) (1999-05-20) |

Re: Rounding with Div and Mod operators mfinney@lynchburg.net (1999-05-21) |

Re: Rounding with Div and Mod operators jmoore@softmoore.com (John I. Moore, Jr.) (1999-05-22) |

Re: Rounding with Div and Mod operators lassehp@imv.au.dk (1999-05-22) |

Re: Rounding with Div and Mod operators r_barton1@hotmail.com (Barton) (1999-05-22) |

Re: Rounding with Div and Mod operators r_barton1@hotmail.com (Barton) (1999-05-27) |

Re: Rounding with Div and Mod operators ucapjab@ucl.ac.uk (Jonathan Barker) (1999-05-27) |

From: | lassehp@imv.au.dk (Lasse =?ISO-8859-1?Q?Hiller=F8e?= Petersen) |

Newsgroups: | comp.compilers |

Date: | 22 May 1999 02:57:53 -0400 |

Organization: | Information & Media Science, University of Aarhus |

References: | 99-05-039 |

Keywords: | arithmetic |

*>[This has been debated at length over the years, and I've found the*

*>argument to be similar to the byte order argument in that there are*

*>advantages and disadvantages to both, but none strong enough to tip*

*>the scales firmly in favor of one or the other. For what it's worth,*

*>Fortran 90 uses round toward zero. -John]*

Ada has both a mod operator and a rem operator, probably because the

designers thought hard about this. Quoting from the language reference

manual <http://www.adaic.org/standards/83lrm/html/lrm-04-05.html#4.5.5>:+

*>>Integer division and remainder are defined by the relation*

A = (A/B)*B + (A rem B)

where (A rem B) has the sign of A and an absolute value less than the

absolute value of B. Integer division satisfies the identity

(-A)/B = -(A/B) = A/(-B)

The result of the modulus operation is such that (A mod B) has the sign of

B and an absolute value less than the absolute value of B; in addition,

for

some integer value N, this result must satisfy the relation

A = B*N + (A mod B)

<<

I guess a search in the literature around the development of Ada will

reveal some of the discussions leading to the inclusion of both mod and

rem.

-Lasse

Post a followup to this message

Return to the
comp.compilers page.

Search the
comp.compilers archives again.