题解 | #整数与IP地址间的转换#

整数与IP地址间的转换

https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea

//可以利用左右移动,省掉求次方的函数
#include <stdio.h>
int Sq(int i)
{
    int j=0,a=1;
    for(j=0;j<i;j++)
    {
        a*=2;
    }
    return a;
}
int main()
{
    unsigned int a,b,c,d,n,num=0;
    scanf("%d.%d.%d.%d",&a,&b,&c,&d);
    scanf("%d",&n);
    num=(d&255)+(c&255)*Sq(8)+(b&255)*Sq(16)+(a&255)*Sq(24);
    d=n&255;
    c=(n&65280)/(Sq(8));
    b=(n&16711680)/(Sq(16));
    a=(n&4278190080)/(Sq(24));
    printf("%u\n%u.%u.%u.%u\n",num,a,b,c,d);
    return 0;
}

全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务