Ip地址轉32位整數 和 32位整數轉化對應的IP地址


一:解題思路

舉例:一個ip地址為10.0.3.193 轉化后的整數為:167773121

二:完整代碼示例 (C++版和Java版)

Ip地址轉化為整數 C++代碼:

int ipToInt(string s)
{
    int ret = 0;
    int num = 0;

    for (int i = 0; i < s.size(); i++)
    {
        if (s[i] != '.')
        {
            num = num * 10 + (s[i]-'0');
        }
        else
        {
            ret <<= 8;
            ret += num;
            num = 0;
        }
    }
    ret <<= 8;
    ret += num;

    return ret;
}

 整數轉化為IP地址:

string intToIp(uint32_t num)
{

    string strRet = "";
    for (int i = 0; i < 4; i++)
    {
        uint32_t tmp = (num >> ((3 - i) * 8)) & 0xFF;

        char chBuf[8] = "";
        _itoa_s(tmp, chBuf, 10);
        strRet += chBuf;

        if (i < 3)
        {
            strRet += ".";
        }
    }

    return strRet;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM