本文主要是介绍POJ 百炼 保研机试 4039:IP地址转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
4039:IP地址转换
- 查看
- 提交
- 统计
- 提示
- 提问
- 总时间限制:
- 1000ms 内存限制:
- 65536kB
- 描述
-
IP地址总是由4个0-255的数字以"."隔开的形式来显示给用户,例如192.168.0.1。在计算机中,一个IP地址用4字节来依次存储其从右到左的4个数字部分,每个字节(8比特)以2进制的形式存储相应的IP地址数字,请你实现一个从IP地址的显示格式到计算机存储格式的转换。
输入 - 每行输入一个IP地址,如果输入为-1,结束输入 输出
- 每行输出一个IP地址在计算机存储中以二进制表示的4字节内容 样例输入
-
192.168.0.1 255.255.0.0 1.0.0.1 -1
样例输出 -
11000000101010000000000000000001 11111111111111110000000000000000 00000001000000000000000000000001
-
#include<stdio.h> #include<string.h> int main(){char str[25];while(scanf("%s",str)!=EOF&&strcmp(str,"-1")!=0){int n=strlen(str);int j=0,t=0,k=1;int s[5];for(int i=n-1;i>=0;i--){if(str[i]=='.'){s[j]=t;j++;k=1;t=0;}else{t+=(str[i]-'0')*k;k*=10;if(i==0){s[j]=t;j++;k=1;t=0;}}}//转2进制,补齐八位for(int i=j-1;i>=0;i--){int r[10];int l=0;for(int nt=0;nt<10;nt++) r[nt]=0;while(s[i]!=0){r[l++]=s[i]%2;s[i]/=2;}for(int ii=7;ii>=0;ii--){printf("%d",r[ii]);}} printf("\n");}return 0; }
这篇关于POJ 百炼 保研机试 4039:IP地址转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!