天天看點

c語言ip位址十進制轉二進制,C語言二進制轉換成IP位址

C語言,二進制轉ip

//輸入一連串的二進制數,轉換成IP位址

#include

#include

#include

int Sort(int x, int n);

int main(void)

{

int i;

int ip[4] = { 0 };

char Num[33];

printf("請輸入二進制數: \n");

scanf_s("%s", Num,32);

for (i = 0; i<8; i++)//求ip的第一位數

{

if (Num[i] == '1')

{

ip[0] +=Sort(2, 7 - i);

}

}

for (i = 8; i<16; i++)//求IP位址的第二位數

{

if (Num[i] == '1')

{

ip[1] += Sort(2, 15 - i);

}

}

for (i = 16; i<24; i++)//求IP位址的第三位數

{

if (Num[i] == '1')

{

ip[2] += Sort(2, 23 - i);

}

}

for (i = 24; i<32; i++)//求ip位址的第四位數

{

if (Num[i] == '1')

{

ip[3] += Sort(2, 31 - i);

}

if (Num[i] == '\0')

{

break;

}

}

printf("IP位址是:\n");

printf("%d.%d.%d.%d\n", ip[0], ip[1], ip[2], ip[3]);//輸出IP位址

syst

em("pause");

return 0;

}

int Sort(int x, int n) //自定義函數

{

if (n == 0)

{

return 1;

}

return x * Sort(x, n - 1); //遞歸調用

}