题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
const readline = require('readline')
const r1 = readline.createInterface({
input: process.stdin,
output: process.stdout,
})
r1.on('line', function (line) {
var str = line
var list = str.split('.')
if (str.includes('.')) {
for (let i in list) {
// toString()方法可以根据所传递的参数把数值转换为对应进制的数字字符串。参数范围为 2~36 之间的任意整数。
list[i] = parseInt(list[i]).toString(2)
//转化为二进制时,因为在0-255间,所以八位一组,不够的前面补0
list[i] = '0'.repeat(8 - list[i].length) + list[i]
}
var m = ''
for (let i in list) {
m = m + list[i]
}
m = parseInt(m, 2)
console.log(m)
} else {
var m = parseInt(str).toString(2)
// 因为ip根据'.'划分的话有四组,每组0-255间,所以有8位,总共32位
m = '0'.repeat(32 - m.length) + m
var arr = []
for (let i = 0; i < 4; i++) {
arr[i] = m.slice(i * 8, i * 8 + 8)
arr[i] = parseInt(arr[i], 2)
}
var arr1 = arr.join('.')
console.log(arr1)
}
})