mirror of
https://github.com/BorysLevytskyi/BitwiseCmd.git
synced 2026-01-16 00:42:46 +01:00
* Started working on subnets * Basic version of the subnet command * Improved subnet command * almost done with subnets * improve positioning
26 lines
802 B
TypeScript
26 lines
802 B
TypeScript
function flipBitsToZero(byte: number, numberOfBits : number) : number {
|
|
if(numberOfBits == 0)
|
|
return byte;
|
|
|
|
const zerouOutMask = Math.pow(2, 8-numberOfBits)-1<<numberOfBits; // E.g. 11111000 for flipping first three bits
|
|
const result = byte & zerouOutMask;
|
|
|
|
return result;
|
|
}
|
|
|
|
// TODO: continue here to implement getting broadcast address
|
|
|
|
function flipBitsToOne(byte : number, numberOfBits : number) : number {
|
|
if(numberOfBits == 0) return byte;
|
|
|
|
const zerouOutMask = Math.pow(2, numberOfBits)-1; // E.g. 00000111 for flipping first three bits
|
|
const result = byte | zerouOutMask;
|
|
|
|
return result;
|
|
}
|
|
|
|
function createSubnetMaskByte(numberOfBits: number) {
|
|
return 255<<(8-numberOfBits)&255;;
|
|
}
|
|
|
|
export {flipBitsToZero, createSubnetMaskByte, flipBitsToOne}; |