Complément à 1 en Java [Résolu]

zeldoi5 58 Messages postés mercredi 13 octobre 2004Date d'inscription 13 novembre 2005 Dernière intervention - 18 avril 2005 à 16:20 - Dernière réponse : zeldoi5 58 Messages postés mercredi 13 octobre 2004Date d'inscription 13 novembre 2005 Dernière intervention
- 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') ?
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
zeldoi5 58 Messages postés mercredi 13 octobre 2004Date d'inscription 13 novembre 2005 Dernière intervention - 19 avril 2005 à 15:13
3
Merci
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!

Merci zeldoi5 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de zeldoi5

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.