Drill

ProblemsJava › patterns

Does this account hold every right

easypatternsBit manipulationJava

Access control packs rights into a bitfield. A guard checks whether an account holds all of the rights an action needs.

holdsEveryRight(held: int, needed: int) → bool

Java needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.

Solve it in Python →

Where you start

boolean holdsEveryRight(int held, int needed) {
    
}

Worked examples

CallResult
holdsEveryRight(7, 5)true
holdsEveryRight(5, 7)false
holdsEveryRight(0, 0)true
holdsEveryRight(8, 0)true

Hint

Mask what is held against what is needed. If the masked result still equals what was needed, nothing was missing.

Reference solution in Java
boolean holdsEveryRight(int held, int needed) {
    return (held & needed) == needed;
}

The same problem in another language

More patterns problems in Java