On Monday, 23 September 2024 at 19:52:02 UTC, Craig Dillabaugh
wrote:
Why does the following program:
\<code>
import std.stdio;
int main(string[] args) {
uint Q = 7681;
writeln("Val = ", -1 % Q);
return 0;
}
\</code>
Print
Val = 5568
Was hoping for 1.
I assume it is an integer promotion issue, but I am unsure how
to resolve. I tried replacing the Q with to!int(Q) but this
gave me -1, which is closer but not right either.
Check section "In Programming languages" -
https://en.wikipedia.org/wiki/Modulo
There are different operations (remainder and modulus) and
operators (modulo) which could be combined in a different ways