Bit = {}

function Bit.bit(p)
    return 2 ^ p
end

function Bit.hasBit(x, p)
    return x % (p + p) >= p
end

function Bit.setbit(x, p)
    return Bit.hasBit(x, p) and x or x + p
end

function Bit.clearbit(x, p)
    return Bit.hasBit(x, p) and x - p or x
end