2017-04-15 2 views
2

le résultat du code ci-dessous "39 ​​44" comme sortie. J'ai lu quelque part que le moulage utilisé modulo ici. Je sais basique comment calculer modulo comme 10% 3 = 1 mais je n'ai pas encore compris comment il a calculé ici.Comment le moulage fonctionne en Java en utilisant le modulo

class conversion { 
    public static void main(String args[]) 
    {  
     double a = 295.04; 
     int b = 300; 
     byte c = (byte) a; 
     byte d = (byte) b; 
     System.out.println(c + " " + d); 
    } 
} 
+0

Dupliquer? http://stackoverflow.com/questions/26465633/type-casting-into-byte-in-java –

+0

Vous n'avez rien demandé en utilisant l'opérateur restant. Plutôt que de vous fier à quelque chose que vous "lisez quelque part" mais dont vous ne pouvez probablement pas fournir les détails, je vous suggère d'utiliser le [JLS] (http://docs.oracle.com/javase/specs/jls/se8/html/index .html) pour expliquer le comportement. –

+2

Comment cela fonctionne avec précision dans la spécification de langage Java: https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.1.3. Et il n'y a pas de modulo impliqué. –

Répondre

1

Plage de l'octet est -128 à 127. si l'octet (128) sera -128. octet (129) sera -127. octet (256) sera 0. octet (257) = 1 octet (295) = 39. octet (295,04) = octet (295) = 39.