Cela peut être quelque chose d'évident mais je l'oublie. Pourquoi ai-je besoin d'effectuer ET avec 0xff pour obtenir l'adresse IP? La façon dont je le vois est exactement la même chose, effectuer ET avec 0xff devrait laisser les bits le même, alors pourquoi ne fonctionne-t-il pas si je ne fais pas l'opération ET?Pourquoi avons-nous besoin de ET pour imprimer l'adresse IP
package com.inet.ex1;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class ShowIP {
public static void main(String[] args) {
InetAddress host;
try {
host = InetAddress.getLocalHost();
byte[] ip = host.getAddress();
for (int i = 0; i < ip.length; i++) {
if (i == 0) System.out.print(ip[i] & 0xff);
else System.out.print("." + (ip[i] & 0xff));
}
} catch (UnknownHostException e) {
System.out.println(e);
}
}
}
Que signifie "ne fonctionne pas"? Quel résultat ou erreur obtenez-vous et quel est le résultat attendu? – dunni
Désolé cela fonctionne mais il montre des nombres négatifs! – vanmarcke
D'après ce que vous avez décrit, il semble que la vraie question est ce que '& 0xff' fait en Java. Le duplicata marqué devrait répondre à cela. Si je vous ai mal compris ou que cette question n'a pas répondu à votre question, veuillez me mentionner avec @yshavit et je peux le rouvrir - mais dans ce cas, veuillez clarifier les autres informations que vous recherchez. – yshavit