二进制转IP地址输出

将任意32位二进制数转为IP地址形式输出

#include <stdio.h>

int bin_des(int x, int n)
{
        if(n == 0) return 1;
        return x*bin_des(x,n-1);
}

int main(void)
{

        int i;
        int ip[4] = {0};
        char a[33] = {"11111111111111111111111100000000"};

        for(i=0;i<8;i++)
        {
                if(a[i] == '1') ip[0] += bin_des(2,7-i);
        }

        for(i=8;i<16;i++)
        {
                if(a[i] == '1') ip[1] += bin_des(2,15-i);
        }

        for(i=16;i<24;i++)
        {
                if(a[i] == '1') ip[2] += bin_des(2,23-i);
        }

        for(i=24;i<32;i++)
        {
                if(a[i] == '1') ip[3] += bin_des(2,31-i);
        }

        printf("\n %d.%d.%d.%d",ip[0],ip[1],ip[2],ip[3]);

        return 0;
}