课程
/后端开发
/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 回答以字节数组输出时的问题