3 ms·
See https://stackoverflow.com/questions/4361979/how-does-the-gcc-implementation-of-modulo-work-and-why-does-it-not-use-the https://stackoverflow.com/questions/4
by ThrowawayR2 7y ago
See https://stackoverflow.com/questions/4361979/how-does-the-gcc-implementation-of-modulo-work-and-why-does-it-not-use-the https://stackoverflow.com/questions/4361979/how-does-the-gcc...
In brief, if the value being modulo-ed by is a constant known in advance (which is the case you describe), a sequence of bit manipulation instructions that performs the equivalent of a generic modulo operation but faster can be substituted. The length of that sequence depends on the specific constant used.
If the value being modulo-ed by is not known in advance, I'd suspect that all the modulo operations would take the same time because the same sequence of instructions would be used for all cases. The register width for modern computers is 64-bits, meaning that the same sequence of operations on values would take the same time up for values up to a maximum value of 2^64 (unsigned).
- flyGuyOnTheSly 7y agoThank you so much for that!