Drill

ProblemsJava › patterns

Write the field out in binary

easypatternsBit manipulationStringsJava

A diagnostics screen prints a flags field as ones and zeros so an engineer can see at a glance which switches are on.

toBinary(flags: int) → string

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

String toBinary(int flags) {
    
}

Worked examples

CallResult
toBinary(5)"101"
toBinary(0)"0"
toBinary(1)"1"
toBinary(8)"1000"

Hint

Peel off the lowest bit with a mask, shift down, and repeat. The digits come out backwards, so reverse them at the end.

Reference solution in Java
String toBinary(int flags) {
    if (flags == 0) return "0";
    StringBuilder digits = new StringBuilder();
    int field = flags;
    while (field > 0) {
        digits.insert(0, field & 1);
        field >>= 1;
    }
    return digits.toString();
}

The same problem in another language

More patterns problems in Java