- 比赛描述
给定一个点分十进制的IP地址,把这个IP地址转换为二进制形式。
- 输入
输入只有一行,一个点分十进制的IP地址
包括四个正整数,用三个.分开,形式为a.b.c.d
其中0<=a,b,c,d<=255
- 输出
输出只有一行,即转换为二进制形式IP地址,忽略多余的前缀0
- 样例输入
10.10.136.69
- 样例输出
1010.1010.10001000.1000101
#include<stdio.h>
#include<string.h>
int a,b,c,d,i=0,j;
void iptransfer(int a)
{
i=0;
if(a==0)printf("0");
else
{
int s[8]={0};
while(a)
{
s[i]=a%2;
i++;
a=a/2;
}
for(i=7;i>=0;i--)
if(s[i])
break;//第一个为1的
for(j=i;j>=0;j--)
printf("%d",s[j]);//逆序输出
}
}
int main()
{
scanf("%d.%d.%d.%d",&a,&b,&c,&d);
iptransfer(a);
printf(".");
iptransfer(b);
printf(".");
iptransfer(c);
printf(".");
iptransfer(d);
printf("\n");
return 0;
}