//这题主要是将IP地址转换为十进制表示!
#include "iostream"
#include "string"
#include "cmath"
using namespace std;
int main()
{
int N, i, j, k, sum, output[4];
string input, temp[4];
cin >> N;
for (i = 0; i < N; i++)
{
for (j = 0; j < 4; j++)
{
output[j] = 0;
temp[j].clear();
}
cin >> input;
k = 0;
for (j = 31; j >= 0; j--)//将输入的IP地址分为四个数组进行存储!
{
temp[k] +=input[j];
if (j % 8 == 0)
k = k + 1;
}
for (j = 0; j < 4; j++)//计算每个数组中的二进制数用十进制数表示!
{
sum = 0;
for (k = 0; k < 8; k++)
{
sum += (temp[j][k] - 48) * (pow((double)2, k));
}
output[j] = sum ;
}
for (j = 3; j >= 0; j--)//结果的输出!注意格式!
{
if (j != 3)
cout << ".";
cout << output[j];
}
cout << endl;
}
}
zoj 2482 IP Address
最新推荐文章于 2017-08-26 16:29:10 发布