InetAddress address = InetAddress.getLocalHost();
System.out.println("主机ip地址:"+address.getHostAddress());
System.out.println("主机名称:"+address.getHostName());
byte[] bytes = address.getAddress();
System.out.println("字节数组型的IP地址"+Arrays.toString(bytes));
输出:
主机ip地址:192.168.119.35
主机名称:WIN-R5PAKVOQ0S5
字节数组型的IP地址[-64, -88, 119, 35]
问题:
字节数组型的IP地址[-64, -88, 119, 35]
为什么会出现 -64 -88 现象
这是因为一个byte只能表示8位,而第一位是符号位,第一位0表示正,第一位1表示负。(例如:192换成2进制就是 11000000,因为第一位是‘1’故为负数,值=(符号位不变,其他取反加1)=64),不懂得话就网上查查原码和补码
这个是因为存储的是byte,而byte本身取值范围已经决定了
byte的取值范围是-128~127,怎么解释你应该明白了吧!
同问 找到原因了吗