如何在Java中将byte []转换为POSITIVE BigInteger?

Dev*_*ips 6 java math binary

我正在与另一个在C中工作的团队合作.我们与之通信的协议以byte []格式发送IP地址,以及2个"掩码"值,即字节[8].我想将IP地址用作BigInteger,以便我可以进行比较以查看IP地址是否在2个其他IP地址之间.为了确保签名不会搞砸我,我需要一种方法将IP从字节[](IPv4的4字节或IPv6的16字节)转换为BigInteger中的正值.有人可以指点我参考或建议一种方法来完成这个吗?

Ric*_*ell 13

Java有一个BigInteger构造函数,它采用符号整数和字节数组.所以你可以这样做:

BigInteger ip = new BigInteger(1, ipBytes);
Run Code Online (Sandbox Code Playgroud)

请参阅此处的文档: BigInteger(int,byte [])


Ope*_*uce 11

只需使用接受字节数组和参数的构造函数来说明它是正还是负.