首页上一页 1 下一页尾页 1 条记录 1/1页
c语言以IP地址形式输出
发表在C语言图书答疑
2010-07-11
是否精华
是
否
版块置顶:
是
否
#include<stdio.h>
int bin_dec(int x, int n) /*自定义函数将二进制数转换成十进制数*/
{
if (n == 0)
/*递归结束条件*/
{
return 1;
}
return x *bin_dec(x, n - 1); /*递归调用bin_dec()函数*/
}
main()
{
int i;
int ip[4] ={0};
char a[33]; /*存放输入的二进制数*/
printf("please input binary number:\n");
scanf("%s", a); /*二进制数以字符串形式读入*/
for (i = 0; i < 8; i++)
{
if (a[i] == '1')
{
ip[0] += bin_dec(2, 7-i); /*计算0-7转换的结果*/
}
}
for (i = 8; i < 16; i++)
{
if (a[i] == '1')
{
ip[1] += bin_dec(2, 15-i); /*计算8-15转换的结果*/
}
}
for (i = 16; i < 24; i++)
{
if (a[i] == '1')
{
ip[2] += bin_dec(2, 23-i); /*计算16-23转换的结果*/
}
}
for (i = 24; i < 32; i++)
{
if (a[i] == '1')
{
ip[3] += bin_dec(2, 31-i); /*计算24-31转换的结果*/
}
if (a[i] == '\0')
{
break;
}
}
printf("ip:\n");
printf("%d.%d.%d.%d\n", ip[0], ip[1], ip[2], ip[3]); /*将最终结果以ip形式输出*/
}
中间int bin_dec(int x, int n)
{
if (n == 0)
/*递归结束条件*/
{
return 1;
}
return x *bin_dec(x, n - 1); /*递归调用bin_dec()函数*/
}
和 for (i = 0; i < 8; i++)
{
if (a[i] == '1')
{
ip[0] += bin_dec(2, 7-i); /*计算0-7转换的结果*/
}
}是怎样做的,我想知道详细的过程。我是自学的。
int bin_dec(int x, int n) /*自定义函数将二进制数转换成十进制数*/
{
if (n == 0)
/*递归结束条件*/
{
return 1;
}
return x *bin_dec(x, n - 1); /*递归调用bin_dec()函数*/
}
main()
{
int i;
int ip[4] ={0};
char a[33]; /*存放输入的二进制数*/
printf("please input binary number:\n");
scanf("%s", a); /*二进制数以字符串形式读入*/
for (i = 0; i < 8; i++)
{
if (a[i] == '1')
{
ip[0] += bin_dec(2, 7-i); /*计算0-7转换的结果*/
}
}
for (i = 8; i < 16; i++)
{
if (a[i] == '1')
{
ip[1] += bin_dec(2, 15-i); /*计算8-15转换的结果*/
}
}
for (i = 16; i < 24; i++)
{
if (a[i] == '1')
{
ip[2] += bin_dec(2, 23-i); /*计算16-23转换的结果*/
}
}
for (i = 24; i < 32; i++)
{
if (a[i] == '1')
{
ip[3] += bin_dec(2, 31-i); /*计算24-31转换的结果*/
}
if (a[i] == '\0')
{
break;
}
}
printf("ip:\n");
printf("%d.%d.%d.%d\n", ip[0], ip[1], ip[2], ip[3]); /*将最终结果以ip形式输出*/
}
中间int bin_dec(int x, int n)
{
if (n == 0)
/*递归结束条件*/
{
return 1;
}
return x *bin_dec(x, n - 1); /*递归调用bin_dec()函数*/
}
和 for (i = 0; i < 8; i++)
{
if (a[i] == '1')
{
ip[0] += bin_dec(2, 7-i); /*计算0-7转换的结果*/
}
}是怎样做的,我想知道详细的过程。我是自学的。