Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8476341
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 10, 20262026-06-10T18:09:06+00:00 2026-06-10T18:09:06+00:00

Possible Duplicate: How to code a modulo (%) operator in C/C++/Obj-C that handles negative

  • 0

Possible Duplicate:
How to code a modulo (%) operator in C/C++/Obj-C that handles negative numbers

From what I understand (see Modulo operator with negative values and Modulo operation) C & C++ have a “remainder” operator a % b but no operator that actually does modular arithmetic when the LHS is negative.

Several languages do have such a function. Is it possible to build an efficient function in C/C++ (or is there no efficient way to do it on i686/x64 CPUs)?

Currently I use (n * b + a) % b where n is picked such that I’m fairly sure the entire LHS is non-negative, but inevitably code gets changed and bugs sometimes occur.

Note: in case it’s not clear, by modular arithmetic I mean an operator such that a + b % b = a % b for all integers a and all positive integers b.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-10T18:09:07+00:00Added an answer on June 10, 2026 at 6:09 pm

    There is no simple way to do it, however it is more efficient if you create a two-line solution, and spare a multiplication plus determining n.

    inline int modulo(int a, int b) {
      const int result = a % b;
      return result >= 0 ? result : result + b;
    }
    

    Also, if you need to work correctly for negative b numbers as well, add to the beginning:

              if(b < 0) return modulo(-a, -b);
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Possible Duplicate: Convert some code from C++ to C I've got some code that
Possible Duplicate: PHP code to remove everything but numbers i have a loop that
Possible Duplicate: Loop code for each file in a directory I assumed that I
Possible Duplicate: Python code to pick out all possible combinations from a list? I
Possible Duplicate: Protect .NET code from reverse engineering? we just develop a application with
Possible Duplicate: Why is this code invalid in C#? Conditional operator cannot cast implicitly?
Possible Duplicate: PHP code is not being executed (i can see it on source
Possible Duplicate: Run a code in given time interval I have a method that
Possible Duplicate: Call Python From PHP And Get Return Code probably a very stupid
Possible Duplicate: How to make a modulo operation in objective-c / cocoa touch? Can

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.