CSUCR7
2021-11-15 18:34
采纳率: 100%
浏览 20

c语言c++题期待大家的解答奥。

一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请定义一个函数,将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入样例:11001100100101000001010101110010(32位二进制字符串)输出样例:204.148.21.114(IP地址由4个十进制数组成,分别对应4个8位的二进制数,中间用“.”分隔开)

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • 从善若水 算法领域优质创作者 2021-11-15 18:48
    最佳回答
    
    #include <stdio.h>
    #include <math.h>
    int b2t(char *s)
    {
        int sum=0;
        for(int i=0;i<8;++i)
        {
            if(s[i]=='1')
                sum+=pow(2,7-i);
        }
        return sum;
    }
    
    int main()
    {                   
        char ip_s[32];
        gets(ip_s);
        
        for(int i=0;i<4;++i)
        {
            printf("%d",b2t(ip_s+i*8));
            if(i!=3)
              printf(".");
        }
    
        return 0;    
    }
    
    评论
    解决 无用
    打赏 举报 编辑记录
查看更多回答(1条)

相关推荐 更多相似问题