課程
/后端開發
/Java
/Java Socket應用---通信是這樣練成的
為什么輸出的是IP地址的補碼
2016-07-29
源自:Java Socket應用---通信是這樣練成的 2-1
正在回答
這個原因建議去了解一個,原碼、反碼、補碼的概念。IP地址是INT 類型的例如: 130在計算機中表示二進制位00000000 00000000 00000000 10000010 ,當它存入到字節數組中,由于一個字節有8位,故,存入后130為 10000010而二進制中最高位為符號位 (0代表整數,1代表負數),所以1000 0010表示的是一個負數,負數在計算機中是用的補碼表示的,要求的原碼,1000 0010 要先 -1 得:1000 0001 在求反后得其原碼,0111 1110 轉化為10進制為 -126.
迷茫中的小朋友 提問者
舉報
分享的是 Java 中的網絡編程,使用Socket實現網絡聊天通信
2 回答字節數組形式獲取的IP地址,有些字段是負數?256-?
4 回答通過InetAddress 獲取字節數組IP時 byte[] bytes = address.getAddress();,出現負數
1 回答字節數組的大小
3 回答為什么我用字節數組保持ip地址打印出來和我用直接打印對象的ip地址不一樣?
2 回答以字節數組輸出時的問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-07-30
這個原因建議去了解一個,原碼、反碼、補碼的概念。IP地址是INT 類型的例如: 130在計算機中表示二進制位
00000000 00000000 00000000 10000010 ,當它存入到字節數組中,由于一個字節有8位,故,存入后130為 10000010
而二進制中最高位為符號位 (0代表整數,1代表負數),所以1000 0010表示的是一個負數,負數在計算機中是用的補碼表示的,要求的原碼,1000 0010 要先 -1 得:1000 0001 在求反后得其原碼,0111 1110 轉化為10進制為 -126.