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

整数与IP地址间的转换

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

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

const getMulti = (n: number) => {
    let result = 1;
    while (n) {
        n -= 1;
        result *= 2;
    }
    return result;
};

rl.on("line", function (line) {
    const tokens = line.split(" ");
    const raw = tokens[0];
    const isIp = raw.includes(".");
    const result = isIp ? ipToDecimal(raw) : decimalToIP(raw);
    console.log(result);
});

const ipToDecimal = (raw: string) => {
    const list = raw
        .split(".")
        .map((v: string) => parseInt(v))
        .reverse();
    let sum = 0;
    for (let i = 0, count = list.length; i < count; i++) {
        const cur = list[i];
        const multiple = getMulti(i * 8);
        sum += cur * multiple;
    }
    return sum;
};

const decimalToIP = (raw: string) => {
    let list = [];
    let remainder = parseInt(raw);
    for (let step = 3; step >= 0; step--) {
        const multi = getMulti(step * 8);
        const quotient = Math.floor(remainder / multi);
        remainder = Math.floor(remainder % multi);
        list.push(quotient);
    }
    const result = list.join(".");
    return result;
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# AI面会问哪些问题? #
24501次浏览 482人参与
# 中国电信笔试 #
31011次浏览 283人参与
# 厦门银行科技岗值不值得投 #
7435次浏览 186人参与
# 你的实习产出是真实的还是包装的? #
18681次浏览 329人参与
# 如果秋招能重来,我会____ #
96616次浏览 500人参与
# 春招至今,你的战绩如何? #
59439次浏览 535人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14056次浏览 209人参与
# i人适合做什么工作 #
36838次浏览 124人参与
# 我是面试官,请用一句话让我破防 #
79444次浏览 219人参与
# 哪些公司真双非友好? #
69176次浏览 287人参与
# 找AI工作可以去哪些公司? #
7587次浏览 181人参与
# 从事AI岗需要掌握哪些技术栈? #
7563次浏览 240人参与
# 面试尴尬现场 #
220729次浏览 861人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
339810次浏览 2165人参与
# 五一之后,实习真的很难找吗? #
102792次浏览 584人参与
# 金三银四,你的春招进行到哪个阶段了? #
21492次浏览 275人参与
# 你做过最难的笔试是哪家公司 #
29779次浏览 184人参与
# 你小时候最想从事什么职业 #
159832次浏览 2072人参与
# 阿里笔试 #
176154次浏览 1301人参与
# 应届生第一份工资要多少合适 #
20463次浏览 84人参与
# 一张图晒出你司的标语 #
3787次浏览 71人参与
# 面试被问期望薪资时该如何回答 #
382448次浏览 2163人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务