题解 | #整数与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 () {
const ip = await readline();
const num = parseInt(await readline());
const ipToNumber = (ip) => {
let str = ip
.split(".")
.reduce(
(pre, cur) => pre + Number(cur).toString(2).padStart(8, 0),
""
);
return parseInt(str, 2);
};
const numberToIp = (num) => {
let str = num.toString(2).padStart(32, 0);
let res = parseInt(str.slice(0, 8),2);
for (let i = 8; i <= 24; i += 8) {
res += "." + parseInt(str.slice(i, i + 8), 2);
}
return res;
};
console.log(ipToNumber(ip));
console.log(numberToIp(num));
})();
