#include <math.h>
int main ()
{ int j,i,sum=0,a,b,c,d
char ch
for(j=0 j<32 j++)
{ ch=getchar()
i=j%8
sum+=(ch-'0')*pow(2,7-i)
if(j==7)
a=sum,sum=0
else if(j==15)
b=sum,sum=0
else if(j==23)
c=sum,sum=0
else if(j==31)
d=sum
}
printf("%d.%d.%d.%d",a,b,c,d)
return 0
}
#include "stdio.h"void main()
{
char a[32] /*输入的二进制数据*/
int b[4] /*输出的IP地址数据*/
int c[8]={128,64,32,16,8,4,2,1}/*查询表*/
int temp
int sum
int i
int m
printf("请输入32位二进制数字:")
for(i=0i<32i++)
scanf("%c",&a[i])
/*scanf("%s",a)*/ /*可以按字符串输入,字符串输入是要注意末尾的\0*/
printf("输入的二进制数字是:\n")
for(i=0i<32i++)
printf("%c",a[i]) /*显示输入二进制数据,也可按串输入*/
for(i=0i<4i++)
{
sum=0
for(m=0m<8m++)
{
temp=8*i+m
sum+=(int)(a[temp]-'0')*c[m] /*累加*/
}
b[i]=sum
}
printf("输出的IP地址为:\n")
for(i=0i<3i++)
{
printf("%d.",b[i])
}
printf("%d\n",b[i])
}