题目描述
IP地址是一个长度固定为 32 位 的 01 序列,给定一个IP地址,请将它转成点分十进制后输出。
点分十进制的转化方法如下:首先将IP地址分割成长度相等的四个二进制数字(每个二进制数字的长度为 8),然后将这些数字用十进制表示,中间用.
分割。
例如某个IP地址为:11000000101010000000000101100100
,那么
11000000
对应十进制数字为192
10101000
对应十进制数字为168
00000001
对应十进制数字为1
01100100
对应十进制数字为100
这个IP地址的点分十进制表示为192.168.1.100
。
输入描述
32 个 01 字符:表示一个给定的IP地址
输出描述
一行字符:表示给定IP地址的点分十进制表示
输入样例
11000000101010000000000101100100
输出样例
192.168.1.100
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 4; i ++) {
char ch;
int num = 0;
for (int j = 1; j <= 8; j ++) {
cin >> ch;
num = num * 2 + ch - '0';
}
cout << num;
if (i != 4) cout << '.';
}
return 0;
}