亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

通過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 現象

正在回答

4 回答

這是因為一個byte只能表示8位,而第一位是符號位,第一位0表示正,第一位1表示負。(例如:192換成2進制就是 11000000,因為第一位是‘1’故為負數,值=(符號位不變,其他取反加1)=64),不懂得話就網上查查原碼和補碼

1 回復 有任何疑惑可以回復我~
#1

nanisore_0

168的二進制是10101000,轉過來就是-40,而不是-88,求解。
2017-09-03 回復 有任何疑惑可以回復我~
#2

nanisore_0 回復 nanisore_0

我弄錯了,168的二進制是10101000,轉過來就是-88~
2017-09-03 回復 有任何疑惑可以回復我~
#3

慕田峪1616461

為什么要轉成它的補碼的形式呢
2017-09-16 回復 有任何疑惑可以回復我~

這個是因為存儲的是byte,而byte本身取值范圍已經決定了

0 回復 有任何疑惑可以回復我~

byte的取值范圍是-128~127,怎么解釋你應該明白了吧!

0 回復 有任何疑惑可以回復我~

同問 找到原因了嗎

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

通過InetAddress 獲取字節數組IP時 byte[] bytes = address.getAddress();,出現負數

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號