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

整数与IP地址间的转换

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

// 使用padStart(maxlength, fillString)可以用指定字符串填充原字符串到指定长度

let ip = readline().split('.').map(i => Number(i))
let n = Number(readline())

print(changeIP(ip))
print(changeToIP(n))

function changeIP(ip) { // IP转整数
    let arr = []
    ip.forEach(i => {
        arr.push(i.toString(2).padStart(8, 0))
    })
    return parseInt(arr.join(''), 2)
}

function changeToIP(n) { // 整数转IP
    let s = n.toString(2).padStart(32, 0)
    let arr = []
    for(let i=0; i<s.length; i++) {
        if(i%8==0)arr.push(s.substr(i, 8))
    }
    return arr.map(i => parseInt(i, 2)).join('.')
}
全部评论

相关推荐

头像
03-20 22:00
重庆大学 Java
适彼乐土:“他们不行再找你” 最后的底牌吗?有点意思
点赞 评论 收藏
分享
不懂!!!:感觉你的项目描述太简单了,建议使用star描述法优化提炼一下,就是使用什么技术或方案解决了什么问题,有什么效果或成果,例如:对axios进行了二次封装,实现了请求的统一管理、错误的集中处理以及接口调用的简化,显著提高了开发效率和代码维护性,使用canvas技术实现了路线绘制功能,通过定义路径绘制函数和动态更新机制,满足了简化的导航可视化需求,提升了用户体验。像什么是使用其他组件库,基本功能描述就最好不要写到项目成果里面去了,加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务