ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

IP地址(YACS)

2026/8/13 22:15:43 拓冰建站 浏览量
IP地址(YACS)
题目描述

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;}
}