我有个奇怪的问题。
Here是指向我正在处理的输入和输出代码的链接。
我有问题的那一部分贴在这里

printf("before modulo r= %d ,ans =%d\n",r/b,ans );
ans=(ans)%2;
printf("after modulo r = %d ,ans =%d\n",r,ans);

可以看到,在执行第24行ans=0之前的第二次迭代中,在第24行ans=0之后,它变为1,而不是保持0为0%2=0。我真的不明白这个问题

最佳答案

您的第一次打印不打印ans,因为您的b是一个长int,所以r/b是一个长int,它有64位,您的第一次打印将前32位打印为r,后32位打印为ans。您的ans从不是0开始。
下次,请把你的代码贴出来,而不要链接它。

关于c++ - 0%2成为1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22158612/

10-12 19:19