Computers parse the inputs provided to them by converting them into strings of 1’s and 0’s. This cryptic representation can be reversed so that the encoded texts and numbers can be read. There are direct binary numbers that are assigned to symbols and numbers following international conventions, such as ASCII and Unicode.
We offload many of our tasks to computers. There is an input-output system at work there: we input some information, the computer processes it and outputs the desired result. The human-readable information is converted into something that the computer understands, which is the binary system’s lines of information in the form of 1’s and 0’s.
You have surely seen these unreadable lines of 1’s and 0’s and was unable to make heads or tails of what is going on there. However, just as human-readable information can be converted into binary, binary can be converted into common English without the use of computers!
We can read the binary language, but to do that we need to understand the numeric system.
Electricity is used to power modern computers. These computers work with the incoming information from the electricity in the micro-processors. There are two states of electricity: on and off. These on and off states of electricity are represented by 1 and 0—the binary system of computer science.
Binary is a numeric system, like the decimal system (base 10), which we use in our daily lives. It is actually quite similar to the decimal system in many ways.
We use 10 symbols to count, i.e, 0123456789. We don’t add any more symbols after 9, as it would become very difficult to memorize a unique symbol for every possible number in existence. Thus, we add a decimal to the left, making the number after 9 into 10. This is called positional notation.
In the decimal system, whenever we reach 10 or an exponent of 10, we add a numeric to the left of the decimal. For example, as we reach 9, it becomes 10, and as we reach 99, it becomes 100 and so on. Every new exponent is 10 times bigger than the previous one, 10, 100, 1000, 10000, 100000 and so on.
Addition in the decimal system is also straightforward: consider 132 + 49. We start with the right-hand side and add 9 and 2, leaving us with 11, so we carry the extra one to the next unit.
The next decimal is added, i.e., 3 +4 and the carried over 1, giving 8. The sum of 132 + 49 becomes 181.
Unlike the decimal system, which uses 10 symbols, the binary system is simpler and uses only two symbols, i.e., 1 and 0. As every next exponent becomes 10 times bigger in the decimal system, the next exponent in the binary system is 2 times bigger.
Take the binary number 10. It has 0 in its first exponent, so it is 0 (the binary) x 1(the exponential) = 0, 1 in the second exponent so it is 1 (the binary) x 2(the exponential) = 2. Thus, the binary number 10 represents 2.
Addition follows a similar pattern. Consider the binary number 101 and 11. We have to remember that we are restricted to only two variables: 0 and 1. The addition is started from the right-hand side, as we add 1 and 1, which is 2. We can’t write 2 there, because that is not a valid variable in binary, so we will use its binary value, which as we saw above is 10. So we keep the 0 in and carry the 1 on to the next exponent. We have 1 + 0 +1 = 2. Again we have 10 here, and we carry the one in the next exponent, which is 1 + 1. We keep the complete binary, as there is nothing to carry on to and we get the sum as 1000. We can verify the answer, as 101 is 5 in the decimal system, 11 is 3 and 1000 is 8.
Now that we have a basic grasp on how binary numbers function, we can see how they represent information and thus read them without using a computer.
How to read numbers
We know that binary numbers use only two variables and each exponent becomes 2 times bigger than the previous one. We’ve seen how small numbers are represented in binary, and their binary string is small (2 is 10). However, using only two variables means that bigger numbers are longer.
Each number is double the number on its right-hand side. As shown in the image above, each binary number must be multiplied by its corresponding exponent and added together to get the decimal value that the binary number represents. So, starting from the extreme right; (1 x 1) + (1 x 2) + (0 x 4) + (0 x 8) + (1 x 16) + (1 x 32) + (1 x 64) + (1 x 128). This comes to 1 + 2 + 0 + 0 + 16 + 32 + 64 + 128 = 243.
The example above is done by 8 bits of binary, and is therefore called an 8-bit. 8-bit systems are fairly common and have been termed as a byte. The maximum value an 8-bit can hold is 256 (11111111) and they were the basis of the first personal use computers with 8-bit graphics and 8-bit audio. These computers did most of their operations in divisions of 8 bits.
The 8-bit system has a limitation when it comes to size and bigger bit systems have been developed to address this issue. These systems are 32 bits and 64 bits. The largest number that 32 bits can represent is 232 which is 4,294,967,295 or 4.3 billion! This still has limitations for representing much bigger numbers, which is dealt with 64-bit computing, a very common bit system seen in computers today. The largest number that 64 bits can represent is 264, which is 18,446,744,073,709,551,615 or 18.44 quintillion—a very large number!
These bigger systems are important if you want to represent decimal numbers like 182.68. These numbers are called floating-point numbers, as the decimal can be shifted anywhere, e.g., 182.68 can be 0.18268 x 103.
Many systems have been developed to be represented in binary; the most common one followed today is the IEEE 754 Standard. This method uses scientific notation to store the floating-point number. Every decimal number must be in the form of 0.18268 x 103.
In floating-point notation, 1.5 would be +1.5 x 100. Now, following the 32-bit IEEE system will break down the number into three parts. First is the sign of the number, which is positive or negative, given by 1 (negative) and 0 (positive). Next, the exponent 100 and the mantissa 1.5 is represented in their binary counterparts. So, +1.5 x 100 becomes 0-0111111-100000000000000000000000.
How to read text
The most common languages and symbols for a binary convention that is universally followed are the ASCII (American Standard Code for Information Interchange) and UNICODE.
Each symbol corresponds to a length of an 8-bit number in an ASCII.
The procedure to read the binary text is straightforward. The binary text must be segregated into 8-bit chunks that become individual symbols or alphabets. The corresponding symbol for each 8-bit chunk in the ASCII table is noted and the sentences are formed, much like a puzzle.
Consider 01001001 00100000 01101100 01101111 01110110 01100101 00100000 01110000 01101001 01101110 01100101 01100001 01110000 01110000 01101100 01100101 01110011 :
I have already segregated the chunks so it’s a bit less confusing. Each character is looked up in the ASCII table and the corresponding symbol is noted. The thing to note here is that the computer must also be instructed to add spaces between each word, adding another symbol for it.
The symbols above convert into the sentence “I love pineapples”.
The same procedure can be used to read any block of binary code in the form of text. Unicode has adopted all of ASCII’s characters and has further expanded its library with symbols of many languages from around the world, even encoding emojis! You can find all the characters here.
Binary is the atom of computing, the basic building blocks of every process that goes on inside the computer. Every image, video, and gif is represented as a long line of 1’s and 0’s, including this very text that you’re reading on this website!
Understanding how to read binary gives a glimpse into what goes on behind our screens and how we make computers understand our inputs. It is the bridge between the physical and the digital.