Voici un échantillon extrait de code
public class Test {
public static void main(String[] args) {
int a=103;
int b=5;
int c=a%b;
}
}
Maintenant, si vous voyez le code compilé de celui-ci, vous verrez
public static void main(java.lang.String[]);
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
0: bipush 103
2: istore_1
3: iconst_5
4: istore_2
5: iload_1
6: iload_2
7: irem
8: istore_3
9: return
bipush- pousser un octet sur la pile comme une valeur entière istore_1-Met un int hors de la pile et le stocke dans une variable locale, dans l'image en cours.
et 3: iconst_5 constante entière est poussé sur la pile
istore_2 fait la même chose que istore_1 variable nommée simplement changé.
Ensuite 5: iload_1
et 6:iload_2
les deux variables sont à nouveau poussés sur la pile pour les opérations
now at 7:irem the remainder operator works which you are calling as modulo.
Maintenant, comment fonctionne les opérateurs Remainder. C'est Pops deux ints (valeur de a et b) de la pile d'opérandes, divise a par b, calcule le reste et repousse le reste int sur la pile. Le reste est (b - ((a/b) * b)). C'est ce qui est utilisé par l'opérateur% en Java.
Il n'y a pas d'opérateur modulo en Java. ''% Est définie comme le [opérateur reste] (http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.17.3). – EJP
En effet, Merci de remarquer que sur –