第二届程序设计大赛 IP地址

第二届程序设计大赛 IP地址

Time Limit:1000MS  Memory Limit:65536K
Total Submit:360 Accepted:225

Description

常见的IP地址的表示方式为x.x.x.x,如172.16.163.66,它还可以用“位”来表示。 
你的任务是将32个’0’和’1’构成的二进制序列转换为十进制的表示格式,每8位之间以’.’间隔。

Input

输入数据第一行是一个正整数N(1 <= N <= 20),表示有N组数据需要转换。 
接下来的N行表示N组数据。

Output

每行输入数据对应一行输出数据。 
每行输入的二进制数据对应一个十进制的输出数据,每8位以’.’间隔。

Sample Input

4
00000000000000000000000000000000
00000011100000001111111111111111
11001011100001001110010110000000
01010000000100000000000000000001

Sample Output

0.0.0.0
3.128.255.255
203.132.229.128
80.16.0.1

slove:

#include<stdio.h>

int conversion(char a[],int k);

int main()
{
	int n,i,k;
	char a[32];
	scanf("%d",&n);
	while(n--)
	{
		scanf("%s",a);
		for(k=1;k<=4;k++)
		{
			printf("%d",conversion(a,k));
			if(k<4)
			{
				printf(".");
			}
		}
		printf("\n");
	}
	return 0;
}

int conversion(char a[],int k)
{
	int sum=0,i,temp=1,num;
	for(i=8*k-1;i>=8*k-8;i--)
	{
		num=a[i]-'0';
		sum+=num*temp;
		temp*=2;
	}
	return sum;
}


猜你喜欢

转载自blog.csdn.net/weixin_40789841/article/details/80966804
今日推荐