Re: Mod (%) function in C/Objective-C?
Re: Mod (%) function in C/Objective-C?
- Subject: Re: Mod (%) function in C/Objective-C?
- From: Dave <email@hidden>
- Date: Mon, 11 Aug 2014 22:38:52 +0100
On 11 Aug 2014, at 22:15, koko <email@hidden> wrote:
> In computing, the modulo (sometimes called modulus) operation finds the remainder of division of one number by another.
> Given two positive numbers, a (the dividend) and n (the divisor), a modulo n (abbreviated as a mod n) is the remainder of theEuclidean division of a by n. For instance, the expression "5 mod 2" would evaluate to 1 because 5 divided by 2 leaves aquotient of 2 and a remainder of 1, while "9 mod 3" would evaluate to 0 because the division of 9 by 3 has a quotient of 3 and leaves a remainder of 0; there is nothing to subtract from 9 after multiplying 3 times 3. (Note that doing the division with a calculator won't show the result referred to here by this operation; the quotient will be expressed as a decimal fraction.)
> Although typically performed with a and n both being integers, many computing systems allow other types of numeric operands. The range of numbers for an integer modulo of n is 0 to n − 1. (n mod 1 is always 0; n mod 0 is undefined, possibly resulting in a "Division by zero" error in computer programming languages) See modular arithmetic for an older and related convention applied in number theory.
> When either a or n is negative, the naive definition breaks down and programming languages differ in how these values are defined.
Well put! In my mind, the logical thing to do is to return the reverse sequence as per mod function I copied. This makes more sense when using Cocoa because it means you can easily treat NSArray’s as circular lists without having to worry about edge conditions.
Cheers
Dave
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden