1. 程式人生 > >7-7 IP地址轉換(20 分)

7-7 IP地址轉換(20 分)

一個IP地址是用四個位元組(每個位元組8個位)的二進位制碼組成。
請將32位二進位制碼錶示的IP地址轉換為十進位制格式表示的IP地址輸出。

輸入格式:
輸入在一行中給出32位二進位制字串。

輸出格式:
在一行中輸出十進位制格式的IP地址,其由4個十進位制陣列成(分別對應4個8位的二進位制數),中間用“.”分隔開。

輸入樣例:
11001100100101000001010101110010
輸出樣例:
204.148.21.114
 

#include<iostream>
using namespace std;
int main()
{
    int a[4]={0},b[4][8];
	int arr[8]={128,64,32,16,8,4,2,1};
    string str;
    cin>>str;
    int x=0;
    for(int i = 0; i<4;i++)
    {
        for(int j = 0+x; j<8+x; j++)
        {
            if(str[j]-'0'==1)
            {
                a[i]=a[i]+ arr[j-x];
            }
        }
        if(x<24)
        {
           x=x+8;
        }
    }
    int first=1;
    for(int j=0;j<4;j++)
    {
        if(first==0)
            cout<<".";
        else
            first=0;
        cout<<a[j];
    }
}