题目描述
IP地址是一个长度固定为 3232 位 的 01 序列,给定一个IP地址,请将它转成点分十进制后输出。
点分十进制的转化方法如下:首先将IP地址分割成长度相等的四个二进制数字(每个二进制数字的长度为 88),然后将这些数字用十进制表示,中间用 .
分割。
例如某个IP地址为:11000000101010000000000101100100
,那么
11000000
对应十进制数字为192
10101000
对应十进制数字为168
00000001
对应十进制数字为1
01100100
对应十进制数字为100
这个IP地址的点分十进制表示为 192.168.1.100
。
输入格式
3232 个 01 字符:表示一个给定的IP地址
输出格式
一行字符:表示给定IP地址的点分十进制表示
样例数据
输入:
11000000101010000000000101100100
输出:
192.168.1.100
Code:
#include<bits/stdc++.h>
using namespace std;
int main(){char a[100][8];int e=0;for(int i=2;i<=5;i++){cin>>a[i][1]>>a[i][2]>>a[i][3]>>a[i][4]>>a[i][5]>>a[i][6]>>a[i][7]>>a[i][8];if(a[i][1]=='1'){e+=128;}if(a[i][2]=='1'){e+=64;}if(a[i][3]=='1'){e+=32;}if(a[i][4]=='1'){e+=16;}if(a[i][5]=='1'){e+=8;}if(a[i][6]=='1'){e+=4;}if(a[i][7]=='1'){e+=2;}if(a[i][8]=='1'){e+=1;}if(i<5)cout<<e<<".";elsecout<<e;e=0;}
}