通過InetAddress 獲取字節數組IP時 byte[] bytes = address.getAddress();,出現負數
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 現象
2017-03-04
這是因為一個byte只能表示8位,而第一位是符號位,第一位0表示正,第一位1表示負。(例如:192換成2進制就是 11000000,因為第一位是‘1’故為負數,值=(符號位不變,其他取反加1)=64),不懂得話就網上查查原碼和補碼
2017-02-08
這個是因為存儲的是byte,而byte本身取值范圍已經決定了
2017-02-08
byte的取值范圍是-128~127,怎么解釋你應該明白了吧!
2017-02-08
同問 找到原因了嗎