题解 | #整数与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;
}