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

整数与IP地址间的转换

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

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    let input = []
    while(line = await readline()){
        input.push(line)
    }
    //第一行 ip
    let ip = input[0]
    ipToInt(ip)

    //第二行 整数
    let intip = input[1]
    intToIp(intip)
}()

const ipToInt=(input)=>{
    //小数点分割 再把每一部分转为二进制
    let ip = input.split('.')
    let binary = []
    //注意要把二进制用0填充到8位
    ip.forEach(item=>{
        binary.push(Number(item).toString(2).padStart(8,0))

    })
    //最后把整个二进制串拼在一起输出十进制
    console.log(parseInt(binary.join(''),2))
}

const intToIp=(n)=>{
    let binary = Number(n).toString(2).padStart(32,0)
    let res = ''
    while(binary.length>8){
        res = '.'+parseInt(binary.slice(-8),2)+res
        // console.log(res)
        binary = binary.slice(0,binary.length-8)
    }
    res = parseInt(binary,2)+res
    console.log(res)
}

全部评论

相关推荐

牛客83265014...:完了,连现在都没开始面,13号投的是不是晚了
秋招的第一个offer,...
点赞 评论 收藏
分享
09-19 12:15
门头沟学院 Java
迷茫的大四🐶:这下是真的打牌了,我可以用感谢信和佬一起打牌吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务