# How to Read a Binary Clock

What is a binary clock? Before doing a web search I would have guessed this:

In other words, a regular digital clock, except with binary numerals instead of decimal numerals. But as far as I know, a clock like this doesn’t exist. If you search for “binary clock,” you get a clock of a different design, one like this:

This is called the Powers of 2® BCD Clock. It is based on light emitting diodes (LEDs), not 7-segment displays like a normal digital clock. It doesn’t display binary numbers; it displays a binary coding of numbers in LEDs. So rather than reading a binary number, you infer it from an array of LEDs.

## Reading the Fake Binary Clock

As an introduction to binary timekeeping, let’s see how to read the fake binary clock. Like a standard alarm clock, it displays hours and minutes, but in binary instead of decimal. It has four binary digits, or bits, for hours (leading 0s are not displayed). This is enough to cover the hours 1 through 12. It has six bits for seconds, which is enough to cover seconds from 0 through 59.

A binary integer of n bits can represent all decimal integers between 0 and 2n – 1. Three bits can represent only up to seven o’clock; it takes four bits, albeit with room to spare, to accommodate up through twelve o’clock. Similarly, for minutes, five bits is too small: that goes only to 31. It takes six bits, also with room to spare, to reach 59 minutes.

Each bit in a binary integer corresponds to a nonnegative power of two, like each digit in a decimal integer corresponds to a nonnegative power of ten. The decimal number 310 = 3*100 + 1*10 + 0*1, although you probably haven’t thought of it that way since you learned place-value notation in first grade. Similarly, the binary number 11001 = 1*16 + 1*8 + 0*4 + 0*2 + 1*1 = 25. You can simplify that expression considerably since binary digits are either 1 or 0: 1 means the corresponding power of two is present in the sum, and 0 means it’s not. With that in mind, just write 11001 = 16 + 8 + 1 = 25.

The time on the fake clock is 110:101011. Convert each of the two binary numbers as follows: 110 = 4 + 2 = 6, and 101011 = 32 + 8 + 2 + 1 = 43. The resulting time, in decimal, is 6:43.

## Binary Numbers in Lights

A common metaphor used to explain binary numbers is a row of lights, each light of which can be turned on or off. Typically, eight bulbs are shown, since eight bits is a standard grouping inside a computer. By convention, a lit bulb represents 1, and an unlit bulb represents 0. The bits are read from left to right to form a binary number. For example, the following image shows the binary number 00101111, which equals the decimal number 47:

You could just as easily orient the bulbs vertically, reading the bits from top to bottom to get the same number:

The Powers of 2 Clock is based on interpreting rows or columns of LEDs as binary numbers. The clock has two main modes: binary mode and binary-coded decimal (BCD) mode. Each mode can be displayed in 12-hour or 24-hour time, resulting in four modes total. The clock has an arrangement of LEDs to cover all four modes, which means some LEDs will not be used in some modes.

## Reading the Powers of 2 Clock in Binary Mode

Binary mode in the powers of two clock is similar to the fake alarm clock in that each time segment — hours, minutes, and additionally, seconds — is represented by a single binary integer. In binary mode, the binary numbers are coded in rows: seconds are on the bottom row, minutes are on the next row up, and hours are on the row above that.

Although the rows of LEDs represent binary numbers, you’ll find in practice you won’t interpret them that way. Most people don’t recognize binary on sight (me included); what you end up doing is translating binary to your native language — decimal. And how do you translate? You add up powers of two. So just skip the step of translating the lights to binary — go straight to powers of two!

## Reading the Powers of 2 Clock in BCD Mode

In BCD mode, each time segment — hours, minutes, and seconds — is represented in BCD. In BCD, each decimal digit is represented as a separate binary integer. Since hours, minutes, and seconds are a maximum of two decimal digits each, six binary-coded integers must be displayed. The binary numbers are coded in columns: hours are in the left two columns, minutes are in the middle two columns, and seconds are in the right two columns.

## Watch the Powers of 2 Clock in Action

In the following video, time is displayed in BCD mode (you can tell it’s BCD mode because you can see the seconds changing in the rightmost two columns). Over the course of the video, time ranges from 8:56:41 to 8:57:08. Count along with the seconds to get a better feel for how the clock works.

Note: This clock is not made for the dark. You won’t see the unlit LEDs, so in general you won’t be able to read the time. Also, if you sleep with this clock in your room, the flashing LEDs will drive you nuts. 1. jacob says:

2. Amber Phillisp says:

Very useful, thank you. Somewhere in the rest of the guides, something wasn’t clicking – the examples really helped! THANK YOU AGAIN!

3. Positive Logic says:

ACTUALLY, it’s six -FIFTY- three PM on your fake binary alarm clock (courtesy photo-editing software).
🙂

4. Positive Logic,

It would be 53 if you read 101011 as two BCD digits: 101 and 011. However, I meant it as one string of bits (I didn’t put a colon between them), so it’s 101011 = 43. (In other words, I’ve drawn binary mode, but you’re reading BCD mode.)

5. Positive Logic says:

Oops, yes, assumed BCD (w/colons displayed in the LED) …missed that there’s only one. Thanks for the reply! 🙂

6. @Brett,

Cool. Thanks for sharing.

7. A few years ago I started thinking about binary clocks, and came up with some simple and obvious ideas that I haven’t seen anywhere else. Here’s my web page about them:

http://x31eq.com/clock.html

I actually use binary and hex clocks like this on my computer desktop and I find them simple to read and aesthetic — as well as helping to understand binary fractions and, of course, as being completely impenetrable to the uninitiated.

I published the code but didn’t make it very accessible. https://bitbucket.org/x31eq/binaryclock 