7-9 IP地址转换(20 分)
一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。
输入格式:
输入在一行中给出32位二进制字符串。
输出格式:
在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。
输入样例:
11001100100101000001010101110010
输出样例:
204.148.21.114
//IP地址转换
#include<bits/stdc++.h>
using namespace std;
//思路:使用二位字符数组保存下来输入的32位数字,然后对每一行进行字符到数字的转换
// 其中应用到:数字字符的ASCII码值与数字之间的转换,注意相差十进制的48,
// 即计算机中的 ‘0’的ASCII码值为48,(字符0)‘0’ - 48(十进制) == 0(十进制的0
int main()
{
char a[4][8];
int i,j,w,sum[4]={0};
for(i=0;i<4;i++)
{
for(j=0;j<8;j++)
{
a[i][j] = getchar();
}
}
for(i=0;i<4;i++)
{
w = 0;
for(j=7;j>=0;j--)
{
sum[i]+= (a[i][j]-48)*pow(2,w);//注意j的值
w++;
}
cout<<sum[i];//<<'.';//cout 不能输出.
if(i==3)break;
cout<<'.';
}
return 0;
}