Powers of two
2ⁿ and back, GiB to MiB, and how many bits a number of values needs — the powers of two a programmer should have at hand.
How it plays
A power of two to give, a power to name, a size in bytes, KiB, MiB or GiB to convert, or a count of values to fit into bits. It starts with 2ⁿ up to 2⁸, and the top exponent grows four at a time without end; new kinds unlock as you climb.
The wrong options are the real mistakes: 1,000 used where it is 1,024, one bit too few or too many, the largest value taken for the number of values, doubling once too often.
The working goes the way it is done in the head: 2¹⁰ is 1,024, so 2²³ is 1,024² × 8. A kilobyte (kB) is 1,000 bytes; a kibibyte (KiB) is 1,024.
Keys
Space starts and skips ahead · 1–9 pick · Enter submits · Esc stops. On a phone, tap.
What it trains
This makes powers of two, binary size prefixes and bit counts quicker to recall and to derive. It trains that, not general ability.
Learn
How to get better at powers of two: the method, the techniques, what each new level asks of you, and the traps the wrong answers are made of.
Your approach to each question
- Name the kind of question first: a power to give (2ⁿ), a power to find (2^? = N), a unit to convert, the bits a count needs, or what n bits can hold. Each has its own one-line route.
- Split any exponent into tens and the rest. 2¹⁰ is 1,024, so every ten in the exponent is one more “times 1,024”, and the rest is a small power you know.
- Check the size before the digits: each ten in the exponent adds about three digits, since 1,024 is about 1,000. 2²³ is about 8 million, so it has seven digits.
- With options shown, check the last digit next. Powers of two from 2¹ end in 2, 4, 8, 6 and repeat, so the remainder of n ÷ 4 tells you the last digit.
Techniques and tricks
Know the first ten by heart
2, 4, 8, 16, 32, 64, 128, 256, 512, 1,024. Add the ones you will meet most: 2¹⁶ = 65,536, 2²⁰ = 1,048,576, 2³⁰ = 1,073,741,824, 2³² = 4,294,967,296.
Split off the tens
Write 2ⁿ as (2¹⁰)ᵏ × 2ʳ: a power of 1,024 times something under 1,024. For the size alone, read 1,024 as 1,000: 2²³ is about 8 × 1,000², so about 8 million.
e.g. 2²³ = 1,024² × 8 = 1,048,576 × 8 = 8,388,608
Last digit by remainder
Divide the exponent by 4. A remainder of 1 ends in 2, 2 ends in 4, 3 ends in 8, and 0 ends in 6 (from 2⁴ on). One look rules out most wrong options.
e.g. 2²³: 23 = 5 × 4 + 3, so it ends in 8 — and 8,388,608 does
Find the power by its size
For 2^? = N, count how many thousands deep N is — each is ten in the exponent — then name the small power left over.
e.g. 67,108,864 is about 64 million = 64 × 1,000², so 2⁶ × 2²⁰ = 2²⁶
One prefix step is ×1,024
B, KiB, MiB, GiB, TiB … each is 1,024 times the one before. Count the steps between the two units and multiply (or divide) by 1,024 that many times.
e.g. 3 GiB in KiB: two steps, so 3 × 1,024² = 3,145,728 KiB
Bits: the smallest power that covers it
To give N values each its own code, find the smallest b with 2ᵇ ≥ N. If N is exactly a power of two, that power is enough — the codes run from 0 to N − 1.
e.g. 256 values → 8 bits (codes 0 to 255); 257 values → 9 bits
Count and largest are one apart
n bits hold 2ⁿ different values, counting from 0, so the largest unsigned value is 2ⁿ − 1 — every bit set.
e.g. 8 bits: 256 values, largest 255
As the levels climb
- The kinds unlock in this order: 2ⁿ, then 2^? = N, then bytes and KiB, MiB, GiB, then bits for N values, then values in n bits. About a third of questions come from the newest kind.
- The top exponent starts at 2⁸ and grows by four at a time without end. Past 2¹⁰, 2ⁿ and 2^? = N draw their exponents from within eight of the top, so there are no easy small ones to rest on — the split-off-the-tens method is what carries you.
- Unit conversions widen too: first one prefix step apart, then up to two, then up to three — so “GiB to B” becomes possible, and bigger units arrive as the top grows. Count the steps out loud; each is a factor of 1,024.
- The clock is 7 seconds plus 0.45 for each digit of the answer, closing in three steps to 55%. Long answers get more time, but at the tight end use size and last digit to choose, and only multiply out when two options survive both.
Traps to avoid
- 1,000 used for 1,024: 3 MiB taken as 3,000,000 bytes. KiB, MiB and GiB are binary, 1,024 each step. The decimal kB, MB, GB are 1,000 — the game asks only the binary ones.
- One bit too many at an exact power: 256 values need 8 bits, not 9. The codes start at 0, so 2ᵇ values fit exactly in b bits.
- The largest value taken for the count, or the other way: 8 bits hold 256 values and the largest is 255. Read the question — “how many values” or “the largest value” — before you choose.
- Doubling once too often: 2ⁿ⁺¹ in place of 2ⁿ, double the right answer. It comes from counting the doublings from 2 instead of from 1. The last-digit check catches it.
- The digit count taken for the exponent, or for the bits: 67,108,864 has eight digits, but it is 2²⁶. The number of digits is about 0.3 times the exponent, not the exponent itself.
How to practise
- In “Questions”, tick only “2ⁿ” and “2^? = N” until the powers to 2³² are quick both ways; every other kind uses them.
- Switch “Answer by” to “Typing the number”. With options, size and last digit can pick for you; typing every digit is what fixes the values in memory.
- Raise “Options shown” to 8 to put more of the near misses on screen at once — the 1,000-for-1,024 answer beside the doubled one beside the true one.
- Read the working on each miss: it shows the split into 1,024s that gets you there, which is the method to copy.
Levels
Each question has a clock that comes from the work it asks for. There is no last level: at least one dial turns without end. Your level is judged on your last ten answers, every ten: 90% moves you up, below 80% moves you down, which holds most people near four in five right.
All of it is in the settings beside Start — how many answers a judgement looks at and how often it recalibrates, the thresholds, the time, which questions, how many options, and whether you see each verdict at once or review them together at the judgement. You can also jump to any level.
More computing
All games →Big O by inspection
A few lines of loops or recursion: say how the work grows — O(n), O(n log n), O(n²), O(2ⁿ) — by reading the shape, not running it.Latency numbers
How many memory reads fit in a disk seek? Feel the gaps between cache, memory, disk and network, to the nearest power of ten.Data structures by hand
Push, pop, insert, probe: trace a stack, a queue, a search tree, a heap and a hash table by hand, and say what comes out or what the array holds.What does this query return?
A tiny table, a short SQL query: say what comes back. COUNT(*) or COUNT(x), NULL in a WHERE, LEFT JOIN counts, and NOT IN with a NULL.Race conditions
Two threads each run x = x + 1 twice. Can x end at 2? Work out every value a race can leave — every interleaving is checked by running it.Subnets on sight
Hosts in a /26, the network address of 192.168.10.77/26, the mask of a /20, same subnet or not: IPv4 subnetting, exact, in your head.