#include <iostream>
using namespace std;
#include <string>
#include <vector>
#include <sstream>
#include <cmath>

int v2i(const vector<int>& num) {
    int result = 0;
    for (int i = 0; i < num.size(); i++) {
        result = result + num[i] * pow(2, i);
    }
    return result;
}

long long int ip2T(string str) {
    string num1;
    string num2;
    string num3;
    string num4;
    istringstream ip(str);
    getline(ip, num1, '.');
    getline(ip, num2, '.');
    getline(ip, num3, '.');
    getline(ip, num4);
    return stoi(num1) * pow(2, 24) + stoi(num2) * pow(2, 16) + stoi(num3) * pow(2,
            8) + stoi(num4);
}

void T2ip(string str) {
    long long int num = stoll(str);
    int i = 0;
    vector<int> ip2(32, 0);
    while (num != 0) {
        if (num % 2 != 0) {
            ip2[i] = 1;
        }
        num = num / 2;
        i++;
    }
    vector<int> num1(ip2.begin(), ip2.begin() + 8);
    vector<int> num2(ip2.begin() + 8, ip2.begin() + 16);
    vector<int> num3(ip2.begin() + 16, ip2.begin() + 24);
    vector<int> num4(ip2.begin() + 24, ip2.begin() + 32);

    cout << v2i(num4) << "." << v2i(num3) << "." << v2i(num2) << "." << v2i(
             num1) << endl;
}
int main() {
    string str1;
    string str2;
    getline(cin, str1);
    getline(cin, str2);
    long long int result1 = ip2T(str1);
    cout << result1 << endl;
    T2ip(str2);

}

基础不扎实踩坑了,vector的构造是左闭右开的一定要记住。

整体上是对输入输出做处理,没什么难度