IP地址转换 (20 分)

版权声明:作者:最美的风景是你 https://blog.csdn.net/qq_43720467/article/details/90136663

IP地址转换 (20 分)

一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。

输入格式:

输入在一行中给出32位二进制字符串。

输出格式:

在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。

输入样例:

11001100100101000001010101110010

输出样例:

204.148.21.114

#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
    int i,s1,s2,s3,s4,k;
    s1=s2=s3=s4=0;
    char a[33];
    gets(a);
    k=7;
    for(i=0;i<=7;i++){
    	s1=s1+(a[i]-'0')*pow(2,k);
    	k--;
	}
	k=7;
	for(i=8;i<=15;i++){
		s2=s2+(a[i]-'0')*pow(2,k);
		k--;
	}
	k=7;
	for(i=16;i<=23;i++){
		s3=s3+(a[i]-'0')*pow(2,k);
		k--;
	}
	k=7;
	for(i=24;i<=31;i++){
		s4=s4+(a[i]-'0')*pow(2,k);
		k--;
	} 
	printf("%d.%d.%d.%d",s1,s2,s3,s4);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43720467/article/details/90136663