题解 | #整数与IP地址间的转换#
整数与IP地址间的转换
http://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea
let str1 = readline();
let str2 = readline();
console.log(aa(str1));
console.log(bb(str2));
// 转换成10进制的IP地址
function aa(str) {
let arr = str1.split('.');
let s = '';
for(let i = 0; i < arr.length; i++) {
s += Number(arr[i]).toString(2).padStart(8, 0);
}
return parseInt(s, 2);
}
// 转换后的IP地址
function bb(str) {
let s = '0000000' + Number(str).toString(2); // 因为是合法的ip地址,所以首位不会是0,所以只加了7个0
let arr = [];
for(let i = s.length - 8; i >= 0; i -= 8) {
let a = s.substr(i, 8);
arr.unshift(parseInt(a, 2));
}
return arr.join('.');
}