以IP地址形式输出
Posted 卷王之王1.0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以IP地址形式输出相关的知识,希望对你有一定的参考价值。
任意输入一个32位的二进制数,将二进制转换成IP地址形式输出
原理:将输入的二进制以每8位数为一个单位分开,将这8位二进制数转换成十进制数
#include<stdio.h>
int bin_dec(int x, int n); //递归声明
int main()
char a[33]; //结束标志'\\0'占一个位置故设为33
int ip[4] = 0 ; //初始为0
scanf("%s", a);
for (int i = 0; i < 8; i++)
if (a[i] =='1') //注意是字符1而不是整数1
ip[0]+=bin_dec(2, 7 - i);
for (int j = 8; j < 16;j++)
if (a[j] == '1')
ip[1] += bin_dec(2, 15 -j);
for (int k = 16; k < 24; k++)
if (a[k] == '1')
ip[2] += bin_dec(2, 23 - k);
for (int m = 24; m < 32; m++)
if (a[m] == '1')
ip[3] += bin_dec(2, 31 - m);
printf("%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
return 0;
int bin_dec(int x, int n)
if (n == 0)
return 1;
else
return x * bin_dec(x, n - 1);
测试结果:
以上是关于以IP地址形式输出的主要内容,如果未能解决你的问题,请参考以下文章