const isEven = num => ((num & 1) == 0)
const isNthBit = (num, n) => (num & (1 << n))
const setNthBit = (num, n) => (num | (1 << n))
const unsetNthBit = (num, n) => (num & ~(1 << n))
const toggleNthBit = (num, n) => (num ^ (1 << n))
const findRightmost1Bit = num => (num & (-num))
const unsetRightmost1Bit = num => (num & (num - 1))
const asBitArrayString = num => num.toString(2)
const asBitArrayNumber = str => parseInt(str, 2)