Complément à 1 en Java

Résolu
zeldoi5 Messages postés 58 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 13 novembre 2005 - 18 avril 2005 à 16:20
zeldoi5 Messages postés 58 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 13 novembre 2005 - 19 avril 2005 à 15:13
Bonjour tout le monde, me revoici (et avec mes questions .....)

Voilà le titre est assez explicite : comment puis je faire un complément à un en Java.
En effet pour calculer des adresses LAN à partir de l'IP et du Netmask (pour avoir l'Ip de fin du LAN je dois faire : IPFin = AdIP & [(NetMask complément é à 1)-1]

Alors comment je peux faire pour complémenter à un celui ci?

D'ailleurs puis je travailler directement avec les chiffres de l'IP ? ex. si mon IP est : A.B.C.D avec A,B,C et D de chiffres de 0 à 255 et mon Net masque de la même sorte X.Y.Z.T : puis-je faire le ET Logique entre A et X par exemple sans convertir A ou X en binaire?? (A&X') ?

1 réponse

zeldoi5 Messages postés 58 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 13 novembre 2005 2
19 avril 2005 à 15:13
Bon, je me réponds à moi même :

D'abord une petite erreur s'est glissée dans ma question : c'est un OU logique et non un ET...
Ensuite la seule manière de faire mon Complément à un est la suivante :

String mask1cpl = Integer.toString(mask1^255); //Ici
String mask2cpl = Integer.toString(mask2^255); // on complémente
String mask3cpl = Integer.toString(mask3^255); // à un tous les
String mask4cpl = Integer.toString((mask4^255)-1); // octets du masque

(avec mask1;mask2,mask3 et mask4 respectivement les octets du masque de sous réseaux)

Ensuite pour avoir l'IP de Fin du LAN, on fait ceci :
String ipFin1 = Integer.toString(ip1|Integer.parseInt(mask1cpl));
String ipFin2 = Integer.toString(ip2|Integer.parseInt(mask2cpl));
String ipFin3 = Integer.toString(ip3|Integer.parseInt(mask3cpl));
String ipFin4 = Integer.toString(ip4|Integer.parseInt(mask4cpl));


String ipFin = ipFin1 + "." + ipFin2 + "." + ipFin3 + "." + ipFin4;

Voilà, j'espère que ça apprendra autant à quelqu'un qu'à moi.....

Bonne journée!
3
Rejoignez-nous