A12-digit Universal Product Code (UPC) distinguishes products from each other. This post will teach you how to read Universal Product Code (UPC) barcodes.

## How to Read Binary Code Like a Pro

Reading a binary code is not as difficult as it seems to be. With a little bit of practice, you will be able to master this skill.

### Fast Fact

If the last digit of a binary number is **1**, the number is **odd**; if it is **0**, the number is **even**.

Binary is a base-2 number system which represents numeric values through various combinations of bits. A bit can either be zero or one, only. A combination of 8 bits is called a byte, and every byte represents a single numeric value.

Binary is also popularly known as the machine language, since it helps detect an electrical signal’s on or off state. But how? The answer lies in the fact that **0** indicates the **OFF** state, whereas **1** indicates the **ON** state of an electrical signal. Here, we will learn how a computer decodes binary data into human-readable form.

### How to Read Binary Code Text

Computers only understand the numerical ‘binary’ language. Then how is it possible that they can interpret alphabets and other characters too? The answer lies in the fact that every character, including alphabets and non-alphabetic characters like space, +, ×, etc., and numeric text 0 – 9, is internally represented with a numerical value known as the ‘ASCII’ value. ASCII stands for American Standard Code for Information Interchange. Now, once the computer is aware which number is associated with a particular alphabet/character, it can easily manipulate the data after converting it into binary format. The following table depicts the ASCII value and its associated binary code for letters ‘A – Z’ and ‘a – z’.

**Uppercase Alphabets**

**Lowercase Alphabets**

Letter |
ASCII Value |
Binary |

A |
65 |
01000001 |

B |
66 |
01000010 |

C |
67 |
01000011 |

D |
68 |
01000100 |

E |
69 |
01000101 |

F |
70 |
01000110 |

G |
71 |
01000111 |

H |
72 |
01001000 |

I |
73 |
01001001 |

J |
74 |
01001010 |

K |
75 |
01001011 |

L |
76 |
01001100 |

M |
77 |
01001101 |

N |
78 |
01001110 |

O |
79 |
01001111 |

P |
80 |
01010000 |

Q |
81 |
01010001 |

R |
82 |
01010010 |

S |
83 |
01010011 |

T |
84 |
01010100 |

U |
85 |
01010101 |

V |
86 |
01010110 |

W |
87 |
01010111 |

X |
88 |
01011000 |

Y |
89 |
01011001 |

Z |
90 |
01011010 |

Letter |
ASCII Value |
Binary |

a |
97 |
01100001 |

b |
98 |
01100010 |

c |
99 |
01100011 |

d |
100 |
01100100 |

e |
101 |
01100101 |

f |
102 |
01100110 |

g |
103 |
01100111 |

h |
104 |
01101000 |

i |
105 |
01101001 |

j |
106 |
01101010 |

k |
107 |
01101011 |

l |
108 |
01101100 |

m |
109 |
01101101 |

n |
110 |
01101110 |

o |
111 |
01101111 |

p |
112 |
01110000 |

q |
113 |
01110001 |

r |
114 |
01110010 |

s |
115 |
01110011 |

t |
116 |
01110100 |

u |
117 |
01110101 |

v |
118 |
01110110 |

w |
119 |
01110111 |

x |
120 |
01111000 |

y |
121 |
01111001 |

z |
122 |
01111010 |

Let us see how to read binary code alphabets and letters with examples.

### Example #1

**Question**: Decode the binary string **01001001**_{2}

**Answer**: Begin decoding from right to left.

01001001_{2} = **1** × 2^{0} + **0** × 2^{1} + **0** × 2^{2} + **1** × 2^{3} + **0** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 1 + 0 + 0 + 8 + 0 + 0 + 64 + 0 = **73**, which is the ASCII equivalent of **I**

### Example #2

**Question**: Decode the binary string **01100111**_{2}

**Answer**: Begin decoding from right to left.

01100111_{2} = **1** × 2^{0} + **1** × 2^{1} + **1** × 2^{2} + **0** × 2^{3} + **0** × 2^{4} + **1** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 1 + 2 + 4 + 0 + 0 + 32 + 64 + 0 = **103**, which is the ASCII equivalent of **g**

### Example #3

**Question**: Decode the binary string **00110100**_{2}

**Answer**: Begin decoding from right to left.

00110100_{2} = **0** × 2^{0} + **0** × 2^{1} + **1** × 2^{2} + **0** × 2^{3} + **1** × 2^{4} + **1** × 2^{5} + **0** × 2^{6} + **0** × 2^{7}

= 0 + 0 + 4 + 0 + 16 + 32 + 0 + 0 = **52**, which is the ASCII equivalent of **4**

### Example #4

**Question**: Decode the binary string **01001001 00100000 01001100 01001111 01010110 01000101 00100000 01000010 01010101 01011010 01011010 01001100 01000101**_{2}

Note^{*}: The ASCII value of space is **32** and its associated binary string is 01001100_{2}

**Answer**: From Example #1, #2, and #3, we now know how to decode single binary code character. Using the same logic, we will find the ASCII numbers of every 8 bit string. So, the decoding will proceed as follows:

01001001_{2} = **1** × 2^{0} + **0** × 2^{1} + **0** × 2^{2} + **1** × 2^{3} + **0** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 1 + 0 + 0 + 8 + 0 + 0 + 64 + 0 = **73**, which is the ASCII equivalent of **I**

00100000_{2}= **32**, which is the ASCII equivalent of **space**

01001100_{2} = **0** × 2^{0} + **0** × 2^{1} + **1** × 2^{2} + **1** × 2^{3} + **0** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 0 + 0 + 4 + 8 + 0 + 0 + 64 + 0 = **76**, which is the ASCII equivalent of **L**

01001111_{2} = **1** × 2^{0} + **1** × 2^{1} + **1** × 2^{2} + **1** × 2^{3} + **0** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 1 + 2 + 4 + 8 + 0 + 0 + 64 + 0 = **79**, which is the ASCII equivalent of **O**

01010110_{2} = **0** × 2^{0} + **1** × 2^{1} + **1** × 2^{2} + **0** × 2^{3} + **1** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 0 + 2 + 4 + 0 + 16 + 0 + 64 + 0 = **86**, which is the ASCII equivalent of **V**

01000101_{2}

**1**× 2

^{0}+

**0**× 2

^{1}+

**1**× 2

^{2}+

**0**× 2

^{3}+

**0**× 2

^{4}+

**0**× 2

^{5}+

**1**× 2

^{6}+

**0**× 2

^{7}

= 1 + 0 + 4 + 0 + 0 + 0 + 64 + 0 =

**69**, which is the ASCII equivalent of

**E**

00100000_{2} = **32**, which is the ASCII equivalent of **space**

01000010_{2} = **0** × 2^{0} + **1** × 2^{1} + **0** × 2^{2} + **0** × 2^{3} + **0** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 1 + 0 + 0 + 0 + 0 + 0 + 64 + 0 = **65**, which is the ASCII equivalent of **B**

01010101_{2} = **1** × 2^{0} + **0** × 2^{1} + **1** × 2^{2} + **0** × 2^{3} + **1** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 1 + 0 + 4 + 0 + 16 + 0 + 64 + 0 = **85**, which is the ASCII equivalent of **U**

01011010_{2} = **0** × 2^{0} + **1** × 2^{1} + **0** × 2^{2} + **1** × 2^{3} + **1** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 0 + 2 + 0 + 8 + 16 + 0 + 64 + 0 = **90**, which is the ASCII equivalent of **Z**

01011010_{2} = **0** × 2^{0} + **1** × 2^{1} + **0** × 2^{2} + **1** × 2^{3} + **1** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 0 + 2 + 0 + 8 + 16 + 0 + 64 + 0 = **90**, which is the ASCII equivalent of **Z**

01001100_{2} = **0** × 2^{0} + **0** × 2^{1} + **1** × 2^{2} + **1** × 2^{3} + **0** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 0 + 0 + 4 + 8 + 0 + 0 + 64 + 0 = **76**, which is the ASCII equivalent of **L**

01000101_{2} = **1** × 2^{0} + **0** × 2^{1} + **1** × 2^{2} + **0** × 2^{3} + **0** × 2^{4} + **0** × 2^{5} + **1** × 2^{6} + **0** × 2^{7}

= 1 + 0 + 4 + 0 + 0 + 0 + 64 + 0 = **69**, which is the ASCII equivalent of **E**

The final decoded output is, **I LOVE BUZZLE**

## How to Read Binary Code Numbers

The decoding procedure for binary code numbers is the same as for binary code text, with the only difference that the ASCII equivalent of the numerical output is not evaluated.

### Example

**Question**: Decode the binary string **00110100**_{2}

**Answer**: Begin decoding from right to left.

00110100_{2} = **0** × 2^{0} + **0** × 2^{1} + **1** × 2^{2} + **0** × 2^{3} + **1** × 2^{4} + **1** × 2^{5} + **0** × 2^{6} + **0** × 2^{7}

= 0 + 0 + 4 + 0 + 16 + 32 + 0 + 0 = **52**

## How to Read a Binary Clock

In the decimal numbering system, time is indicated by 3 pairs of digits, namely, ‘hours’, ‘minutes’, and ‘seconds’. For instance, ’11:54:28′ means, the time is 54 minutes and 28 seconds past 11 o’clock. On the contrary, a binary clock which is based on the binary numbering system represents time in the form of lights. Basically, the clock comprises 6 columns and 4 rows of light bulbs, where the pairs of columns from left to right represent the hours, minutes, and seconds, respectively.

The decimal value of each column depends upon the position of light which is ‘on’. Starting from the bottom and moving upwards, the values are calculated by ‘2 raised to the power of the row number’. Note that the row number begins from ‘0’. The value of every row in a column where the light is ‘on’ would be as follows:

**0 ^{th} row:** 2

^{0}= 1

**1**2

^{st}row:^{1}= 2

**2**2

^{nd}row:^{2}= 4

**3**2

^{rd}row:^{3}= 8

If more than one light is ‘on’ in a particular column, then the final value would be the sum of all individual values of the rows in that column. Also, note that the value will be ‘0’ if the light bulb is ‘off’. The following illustration will help you understand the concept better.

### Example

**Question**: Find the time represented by the given binary clock.**Answer**:

The values are calculated from left to right.

Value of 1^{st} column = 2^{1} = 2

Value of 2^{nd} column = 0 (no light bulb is ‘on’)

Value of 3^{rd} column = 2^{1} = 2

Value of 4^{th} column = 2^{0} + 2^{1} + 2^{2}= 1 + 2 + 4 = 7

Value of 5^{th} column = 2^{2} = 4

Value of 6^{th} column = 2^{0} + 2^{1} = 1 + 2 = 3

Therefore, the time is **20:27:43**