题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
http://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
思路
- 注意定义long型变量
- 利用scanf特性获得输入数据
- 通过移位将n1,n2;
- 注意输出时格式为%u,输出无符号数
Answer
#include <stdio.h>
int main(void)
{
int a,b,c,d;
long n1,n2;
while(scanf("%d.%d.%d.%d",&a,&b,&c,&d) != EOF)
{
scanf("%u",&n1);
n2 = (a<<24)+(b<<16)+(c<<8)+d;
printf("%u\n",n2);
a=(n1>>24);
b=(n1>>16)&255;
c=(n1>>8)&255;
d=n1&255;
printf("%d.%d.%d.%d\n",a,b,c,d);
}
}