» negative integer division and the modulus operator

Post a reply

Topic review (newest first)

Atiq

2013-11-23 01:31:39

pi man wrote:

dividend / divisor = quotient with a remainder

Just do your division as if both numbers (dividend and divisor) where positive. When you're done, if both numbers were positive, the quotient is positive. If both numbers were negative, the quotient is positive. If one (and only one) of the two is negative, then the quotient is negative.

So -45 / 7 would be -6 with a remainder of 3. Actually, now that you brought it up, it probably should be a remainder of -3 since [quotient * divisor + remainder = dividend].

-6 * 7 + (-3) = 45.

Or if the remainder is always supposed to be positive, the answer could be -7 with a remainder of 4: -7 * 7 + 4 = 45. Bottom line is I thought I knew the answer but I guess I don't. It's been too long since I studied that I guess.

Yes I know, Krassi, I was just trying to explain to Ricky what my question WAS.

krassi_holmz

2006-09-11 03:14:48

I gave you a formula!

mikau

2006-09-11 01:10:01

I think what modulus does with negatives. I mean, with positves you use integer division. 5%2. How many times does 2 fit into five? Twice. So 2 * 2 = 4, subtract 4 from 5 and you get the remainder 1, which is the returned value from this expression. So I can figure out 5%2 without using the computer. How do I figure out 5%-2 or -5%2? That was my question.

Ricky

2006-09-10 10:57:39

Ah, maybe I misunderstood. Mikau, are you looking to find out how the computer implements modulus with negatives or what modulus does with negatives?

For this you will need a definition of module over the reals. For example:

But this depends. You should see some java help for the java %.

mikau

2006-09-10 06:07:10

so is anyone going to tell me how? Lol.

I'm not interested in how the modulus operation works physically, but how I figure out the answer to the problems mathematically so I know where I can use them in my program or what they are doing when they appear.

krassi_holmz

2006-09-10 05:25:04

Ricky wrote:

When programming in Java, or really any high level language, it's not so much important to understand how things work. That only starts to make sense when you get down to the assembly level.

I don't agree. If you have some very big messy program, for example, and if it uses many modulus in it, and if it doesn't do what it's supposed to do, then you should know what's happening around the %, because the mistake may be there. If you don't know, you might pass the error, without noticyng it and this can cost you a big headache.

Ricky

2006-09-09 15:18:36

When programming in Java, or really any high level language, it's not so much important to understand how things work. That only starts to make sense when you get down to the assembly level.

mikau

2006-09-09 14:22:24

yeah me too. Well actually I never studied this particular thing.

pi man

2006-09-09 14:08:22

dividend / divisor = quotient with a remainder

Just do your division as if both numbers (dividend and divisor) where positive. When you're done, if both numbers were positive, the quotient is positive. If both numbers were negative, the quotient is positive. If one (and only one) of the two is negative, then the quotient is negative.

So -45 / 7 would be -6 with a remainder of 3. Actually, now that you brought it up, it probably should be a remainder of -3 since [quotient * divisor + remainder = dividend].

-6 * 7 + (-3) = 45.

Or if the remainder is always supposed to be positive, the answer could be -7 with a remainder of 4: -7 * 7 + 4 = 45. Bottom line is I thought I knew the answer but I guess I don't. It's been too long since I studied that I guess.