PTA 7-9 IP地址转换

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

猜你喜欢

转载自blog.csdn.net/gaiya2050/article/details/81151867