复制代码
#include <stdio.h>
#include<math.h>
int power(int b)//定义幂函数
{
    int i = 2, j = 1;
    if (b == 0)
        i = 1;
    for (; j < b; j++)
        i = 2 * i;
    return i;
}

int Sum(int a[])//定义二进制转换为十进制
{
    int power(int b);
    int sum = 0, i,n,term;
    for (i = 0, n = 7; i < 8; i++, n--)
    {
        term = a[i] * power(n);
        sum = sum + term;
    }
    return sum;
}
int main()//将二进制数转换为ip地址
{    
    char c[32];
    printf("请输入一个32位2进制数:\n");
    for (int j = 0; j < 32; j++)
        scanf_s("%c", &c[j]);
    printf("转换后的ip地址为:");
    for (int n = 0; n < 4; n++)
    {
        int d[32],i;
        if(n!=0)
            printf(".");
        for ( i=8*n; i<8*(n+1); i++)
        {
            d[i%8] = c[i] - '0';
        }
        printf("%d", Sum(d))    
    }
复制代码