IP地址格式输出

     本实例:输入一个32位二进制的数,每隔八位分开将其转换为十进制以IP格式输出。

    

    

 1 #include <stdio.h>
 2 /*
 3 以IP地址形式输出
 4 */
 5 int main(void)
 6 {
 7     int i;
 8     int ip[4]={0};
 9     char a[33];
10     printf("please input binary number:\n");
11     scanf("%s",a);//puts(a);
12     for(i=0;i<8;i++)
13     {
14      if(a[i]=='1')
15         {
16          ip[0]+=bin_dec(2,7-i);
17         }
18     }
19 
20     for(i=8;i<16;i++)
21     {
22      if(a[i]=='1')
23         {
24          ip[1]+=bin_dec(2,15-i);
25         }
26     }
27     for(i=16;i<24;i++)
28     {
29      if(a[i]=='1')
30         {
31          ip[2]+=bin_dec(2,23-i);
32         }
33     }
34     for(i=24;i<32;i++)
35     {
36      if(a[i]=='1')
37         {
38          ip[3]+=bin_dec(2,31-i);
39         }
40 
41     }
42     printf("ip:\n");
43     printf("%d.%d.%d.%d",ip[0],ip[1],ip[2],ip[3]);
44 
45     return 0;
46 }
47 //求2的n次
48 int bin_dec(int x,int n)
49 {
50 
51     if(n==0) return 1;
52     return x*bin_dec(x,n-1);
53 
54 }

       运行结果如图:

转载于:https://www.cnblogs.com/xiaoying1245970347/p/3702954.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值