1.有如下IP:byte[]bt=new byte[]{1,1,168,192};
2.使用BitConverter.ToInt32(bt,0)后返回一个很大的负数(-1062731489),要怎样才能返回字符串形式的IP呢?
//字节序反向,说明是个大端,所以用Reverse反向
//手段其实不少,我只选个理解起来最简单的
IPAddress ip = new IPAddress(new byte[] { 1, 1, 168, 192 }.Reverse().ToArray());
string ipstr = ip.ToString();
补充:建议nuget:system.buffers System.Memory
你要跟下位机折腾,字节操作是免不了。这两库用起来方便点
var bytes = new byte[] { 1, 1, 168, 192 };
var ip_long = System.Buffers.Binary.BinaryPrimitives.ReadInt32BigEndian(bytes);
var ip = new IPAddress(ip_long);
string ip_str = ip.ToString();
循环byte数组,每个byte[i].ToTtring(X2)十六进制输出,不加x2就是十进制输出
解决你的问题,请点赞采纳,谢谢。