ECNU_OJ_1002
2016-03-12 13:45
281 查看
IP Address
Time Limit:1000MS Memory Limit:30000KBTotal Submit:4240 Accepted:1947 Special Judge
Description
Suppose you are reading byte streams from any device, representing IP addresses. Your task is to convert a 32 characters long sequence of ‘1s’ and ‘0s’ (bits) to a dotted decimal format. A dotted decimal format for an IP address is form by grouping 8 bits at a time and converting the binary representation to decimal representation. Any 8 bits is a valid part of an IP address.To convert binary numbers to decimal numbers remember that both are positional numerical systems, where the first 8 positions of the binary systems are:
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
128 64 32 16 8 4 2 1
Input
The input will have a number N (1<=N<=9) in its first line representing the number of streams to convert. N lines will follow.Output
The output must have N lines with a doted decimal IP address. A dotted decimal IP address is formed by grouping 8 bit at the time and converting the binary representation to decimal representation.Sample Input
400000000000000000000000000000000
00000011100000001111111111111111
11001011100001001110010110000000
01010000000100000000000000000001
Sample Output
0.0.0.03.128.255.255
203.132.229.128
80.16.0.1
Source
Mexico and Central America Region 2004代码
include <stdio.h> include <malloc.h> int main(int argc, char **argv) { int n = 0; scanf("%d", &n); char *ip = (char *)malloc(sizeof(char) * n * 32); int *ipdot = (int *)malloc(sizeof(int) * n * 4); int i = 0; for(i = 0; i < n; i++) { scanf("%s",ip + i * 32); } for(i = 0; i < n * 32; i++) ip[i] = ip[i] - '0'; for(i = 0; i < n * 4; i++) { ipdot[i] = ip[0] * 128 + ip[1] * 64 + ip[2] * 32 + ip[3] * 16 + ip[4] * 8 + ip[5] * 4 + ip[6] * 2 + ip[7]; ip = ip + 8; printf("%d",ipdot[i]); if((i + 1) % 4 == 0) printf("\n"); else printf("."); } return 0; }
相关文章推荐
- HackRF实现GPS欺骗教程
- ftp 简介<一>
- jquery添加中append和after的区别
- 【Android 2d游戏开发(1)】——五子棋
- memcached的最佳实践方案
- DOM编程练习(一)
- 广商14级软件工程分数:第二回合
- HackRF实现无线门铃信号分析重放
- ZOJ 1037 Gridland
- 开发中遇到的错误
- markdown使用LaTex输入数学公式类
- 20145319 第二周学习总结
- 四则运算2
- PAT算法题学习笔记
- HackRF实现ADS-B飞机信号跟踪定位
- 插入排序法
- PyCharm5.04使用教程
- Linux 下SVN 命令行的使用
- 前缀异或:XOR Segment (用的是前缀和的思想,所以暂且称这个方法为前缀异或)
- 项目开发技巧