zoukankan      html  css  js  c++  java
  • 将IP地址与Int转换

    有时会碰到这样的需求,需要将IP地址转换为整数存放,在读取时再转换为IP地址格式

    1、将IP字符串转换为整型保存

    代码如下:

                string address;
    int intAddress;
    string ipAddress;
    while ((address = Console.ReadLine()) != "\\0")
    {
    //将IP地址转换为字节数组
    byte[] IPArr = IPAddress.Parse(address).GetAddressBytes();

    //显示出来字节数组存放的内容,结果以16进制显示
    Console.WriteLine(BitConverter.ToString(IPArr, 0, IPArr.Length));

    //将字节数组转换为整型
    intAddress = BitConverter.ToInt32(IPArr, 0);
    Console.WriteLine(intAddress);

    }

    Console.ReadLine();

    运行结果:

    C0-A8-0A-11  是IPArr转换为string类型时的输出结果,也是192 168 10 17 的16进制

    285911232 是IPArr转换为整数的结果,C0是最低位,也就是说该整数是由 11-0A-A8-C0转换成10进制的来的,大家可以试试!

    2、将IP转换的整型数组转换为IP格式

    其实是第一部分的逆过程,先将整型转换为字节数组,再将字节数组转换为IP

    代码如下:

     
    //将整型转换为IP
    ipAddress = new IPAddress(BitConverter.GetBytes(intAddress)).ToString();

    运行结果:

    最后一行即为原来的IP

    3、总结

      两个过程是互逆的过程,IP转整型:利用IPAddress.GetAddressBytes(),获取IP的字节数组格式,然后利用BitConverter.ToInt32(),来转换为Int.涉及到的算法,无非是将字节数组转换为16进制,然后数组的第一个数值为最低位这样的顺序来转换为10进制数得到整型数据;整型转IP则将这个过程反过来。

  • 相关阅读:
    树链剖分 (模板) 洛谷3384
    ST表 (模板) 洛谷3865
    IOI 2005 River (洛谷 3354)
    IOI 2005 River (洛谷 3354)
    poj1094 Sorting It All Out
    poj1094 Sorting It All Out
    spfa(模板)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    HAOI 2006 受欢迎的牛 (洛谷2341)
    洛谷1850(NOIp2016) 换教室——期望dp
  • 原文地址:https://www.cnblogs.com/ATually/p/2411641.html
Copyright © 2011-2022 走看看