南邮 OJ 1182 IP地址转换

IP地址转换

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 1031            测试通过 : 306 

比赛描述

给定一个点分十进制的IP地址,把这个IP地址转换为二进制形式。

输入

输入只有一行,一个点分十进制的IP地址

包括四个正整数,用三个.分开,形式为a.b.c.d

其中0<=a,b,c,d<=255

输出

输出只有一行,即转换为二进制形式IP地址,忽略多余的前缀0

样例输入

10.10.136.69

样例输出

1010.1010.10001000.1000101

提示

 

题目来源

李鸿斌(honghu)




#include<iostream>
using namespace std;

int main(){
	int d[4],i,m;
	scanf("%d.%d.%d.%d",&d[0],&d[1],&d[2],&d[3]);
	for(i=0;i<4;++i){
		m = 128;
		while(m && (d[i]&m)==0){
			d[i] %= m;
			m >>= 1;
		}
		if(m==0){
			putchar('0');
		}else{
			while(m){
				printf("%d",d[i]/m);
				d[i] %= m;
				m >>= 1;
			}
		}
		if(i!=3){
			putchar('.');
		}
	}
	putchar('\n');
}




你可能感兴趣的:(ACM,IP地址转换,南邮OJ)