题目描述

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址。

IPv4 协议中规定使用32位二进制数字(4个字节)来表示计算机的IP地址,这个二进制数字通常被分割为4个”8位二进制数”,用”点分十进制” 表示成a.b.c.d的形式,其中a,b,c,d均小于等于255。

32位二进制数字中:

  • 第1位~第8位二进制数字所对应的十进制数字为a
  • 第9位~第16位二进制数字所对应的十进制数字为b
  • 第17位~第24位二进制数字所对应的十进制数字为c
  • 第25位~第32位二进制数字所对应的十进制数字为d

例如:32位二进制数字为:11000000 10101000 00000001 01100100中,

  • 11000000对应十进制数字192
  • 10101000对应十进制数字168
  • 00000001对应十进制数字1
  • 01100100对应十进制数字100

应此该二进制所对应的IP地址位192.168.1.100

现给定一个32位的二进制数字,请你将它转换为对应IP地址

输入格式

输入共一行:32位二进制数字

输出格式

输出共一行:表示其对应IP地址,四个十进制数字之间用.隔开

数据范围

数据保证输入的32位二进制数字合法

输入样例

11000000101010000000000101100100

输出样例

192.168.1.100

AC代码

#includeusing namespace std;int main(){string s;cin>>s;int a[4]={};for(int i=0;i<32;i++){a[i/8]+=(s[i]-'0')*(1<<(7-i%8));}cout<