题解 | #整数与IP地址间的转换#

整数与IP地址间的转换

https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea

#include <ctype.h>
#include <stdio.h>

int _isdigit(char c){
    if(c>=48&&c<=57){
        return 1;
    }
    else{
        return 0;
    }
}

int main() {
    char str1[100];
    scanf("%s",str1);
    int ip_d = 0;
    scanf("%d",&ip_d);
//ip --> num
{
    int i=0;
    long int value_d =0;
    long int value_b =0;
    int left_move_index = 24;
    while(str1[i]!='\0'){
        if(_isdigit(str1[i])==1){
            value_d =value_d*10+str1[i]-48;
        }
        if(str1[i] == '.'){
            value_b += (value_d<<left_move_index);
            left_move_index -=8;
            value_d = 0;
        }
        i++;
    }
    printf("%ld\n",value_b+value_d);
}
//num --> ip
{
    int d1,d2,d3,d4;
    d4 = ip_d - ((ip_d>>8)<<8);
    ip_d = ip_d>>8;
    d3 = ip_d - ((ip_d>>8)<<8);
    ip_d = ip_d>>8;
    d2 = ip_d - ((ip_d>>8)<<8);
    ip_d = ip_d>>8;
    d1 = ip_d - ((ip_d>>8)<<8);
    printf("%d.%d.%d.%d",d1,d2,d3,d4);
}
    return 0;
}

全部评论

相关推荐

被加薪的哈里很优秀:应该继续招人,不会给你留岗位的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务