题目描述
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.100Code:
#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;}
}