Bonjour tout le monde!
Après avoir trouvé nombre d'infos assez pratiques, je suis bloqué aujourd'hui
Je n'arriva pas à faire correctement un complément à un.....

Avant de mettre mon code, je vais expliquer le pourquoi du comment je cherche ça :
Dans un fichier que je parse, j'obtiens l'adresse IP d'un LAN et son masque de sous réseau, avec ces informations je dois définir la plage d'adresse IP du LAN (donc la dernière adresse du LAN) : pour cela je dois faire l'opération suivante :
AdIPFin = (AdIPLAN) OU [ (Masq complémenté à 1) - 1]

Malheureusement l'opération pour faire le masque "déconne", en effet il m'affiche une réponse négative. En plus je ne sais pas comment "convertir" des décimaux en binaires, donc je fais des complément à 1 sur des décimaux (c'est pour ça que ça ne doit pas marcher enfin je en sais pas...)

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
int octetcpl1 = ~anshort;	//Ici
int octetcpl2 = ~bnshort;	// on fait le
int octetcpl3 = ~cnshort;	// complément
int octetcpl4 = ~dnshort - 1;	// à 1 du masque de sous réseau
Pour tester l'opération du complément à 1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
System.out.println("Complement a 1 de 0 : "+(~00));
System.out.println("Complement a 1 de 1 : "+(~01));
System.out.println("Complement a 1 de 2 : "+(~02));
J'ai ce résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Complement a 1 de 0 : -1
Complement a 1 de 1 : -2
Complement a 1 de 2 : -3
Pouriez vous m'aider???



[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java