HJ33 整数与IP地址间的转换

Powered by:NEFU AB-IN

Link

文章目录

  • HJ33 整数与IP地址间的转换
    • 题意
    • 思路
    • 代码

HJ33 整数与IP地址间的转换

  • 题意

    原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。
    输出转换成10进制的IP地址 输出转换后的IP地址

  • 思路

    1. 将四个数输入之后,c要左移8位,a和b以此类推
    2. 输入大数之后,先求a,即原数右移(3 * 8)位,然后原数减去a,接着往下求即可
  • 代码

    #include 
    using namespace std;
    
    int main() {
        long long int a, b, c, d;
        long long int num;
    
        while (scanf("%lld.%lld.%lld.%lld", &a, &b, &c, &d) != EOF) {
            cin >> num;
            cout << (a << 24) + (b << 16) + (c << 8) + d << endl;
            a = num >> 24;
            num = num - (a << 24);
            b = num >> 16;
            num = num - (b << 16);
            c = num >> 8;
            d = num - (c << 8);
            cout << a << "." << b << "." << c << "." << d << endl;
        }
    }
    

你可能感兴趣的:(Nowcoder,算法)