问答详情
源自:2-1 Java 中的 InetAddress 的应用

字节形式的IP

为什么输出的是IP地址的补码

提问者:迷茫中的小朋友 2016-07-29 18:50

个回答

  • 江feng
    2016-07-30 09:21:53
    已采纳

    这个原因建议去了解一个,原码、反码、补码的概念。IP地址是INT 类型的例如: 130在计算机中表示二进制位
    00000000 00000000 00000000 10000010 ,当它存入到字节数组中,由于一个字节有8位,故,存入后130为 10000010
    而二进制中最高位为符号位 (0代表整数,1代表负数),所以1000 0010表示的是一个负数,负数在计算机中是用的补码表示的,要求的原码,1000 0010 要先 -1 得:1000 0001 在求反后得其原码,0111 1110 转化为10进制为 -126.