题目描述
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<