我有一个简单的程序来查找我的IP地址并将其转换为字符串。 为什么b[i]
值低于(int)255
?为什么ip地址值是和int 255
public class FirstSocketProgramming {
public static void main (String arg[]){
InetAddress local = null;
try {
local = InetAddress.getLocalHost();
} catch (UnknownHostException e){
System.err.println
("Identity Crisis!");
System.exit(0);
}
byte[] b = local.getAddress();
System.out.println (b.toString());
System.out.println (b.length);
String strAddress="";
for (int i = 0; i < b.length; i++)
strAddress += ((int)255&b[i]) + ".";
System.out.println ("Local = " + strAddress);
}
}
很好的答案,但我得批评你的措辞一点。 “全范围的8位”仍然遵循-128至127的规定,除非由于位作为符号位而移位。不过,这个想法是正确的。 – hexafraction
请解释-1? –
不是我,我认为这也是有效的。 – hexafraction