Binary arithmetic in Javascript
by Richard Hunter
HTML
<h1>Binary Arithmetic in Javascript</h1>
JavaScript
function binaryToDec(binaryNum) {
return parseInt(binaryNum, 2);
}
function decToBinary(decNum) {
return (decNum >>> 0).toString(2);
}
var addr = '255.255.255.255';
ipAddr = parseDottedDec(addr);
function parseDottedDec(addr) {
let result;
result = addr.split('.').reduce((memo, section, index) => {
return memo + Math.pow(256, 3 - index) * parseInt(section, 10)
}, 0);
return result;
}
function toDottedDec(decimalNum) {
const base = 256;
let result = decimalNum;
let tmp = [];
while(result > 1) {
let tmpResult = parseInt(result / base, 10);
let remainder = result % base;
result = tmpResult;
tmp.push(remainder);
}
return tmp.join('.');
}
function getNetworkAddress(addr, cidr) {
let result;
const mask = getMask(cidr);
return addr & mask;
}
function getMask(cidr) {
const bar = 4294967295;
return bar << 32 - cidr;
}
console.log(toDottedDec(4294967295));
const ipAddress = '192.25.45.8';
console.log('take an ip address', ipAddress);
const ipAddressDec = parseDottedDec(ipAddress);
console.log('convert to a decimal representation', ipAddressDec);
const ipAddressBin = decToBinary(ipAddressDec);
console.log('convert to binary form', ipAddressBin);
const networkAddress = getNetworkAddress(ipAddressDec, 8);
console.log('network address is', toDottedDec(networkAddress))
const cidr = 8;
//const networkAddress = getNetworkAddress(address, cidr);
//console.log(networkAddress);