Tag: mod

值得用mod替换if语句为圆形索引

我需要一个变量来指向数组索引,并且像圆圈一样,当它到达数组的末尾时返回0。 我知道我可以使用if语句判断,但我不确定是否会更快或者不使用mod来实现相同的function,有人能给我一些建议吗? int p=0; int arr[10]; void add_index(){ if(p==9) p=0; else p++; } 要么 int p=0; int arr[10]; void add_index(){ p=(p+1)%10; }

带负数的Mod在Java和C中给出否定结果

假设我有(-5) mod 8 。 我用Java和C两种语言尝试过,当我期待3时,他们给了我-5结果。 为什么会这样? 模数可以为负数吗? 我应该改变什么来获得正确的结果? Java代码 public class Example { public static void main(String[] args) { int x; x = -5%8; System.out.println(x); } } C代码 int main(){ int x; x = -5%8; printf(“%d”, x); } 产出