*“History of Binary Language”*

The concept of binary language dates back to ancient China with the “I Ching” and was first formalized by Gottfried Wilhelm Leibniz in the 17th century. However, it was with the work of George Boole in the 1850s that the binary system found its application in computing, leading to the creation of Boolean algebra.

Imagine if you had just two crayons to draw everything in the world. It might seem impossible, but this is exactly what computers do with binary language. Binary language uses just two numbers, 0 and 1, to write down any information you can think of – from your favorite song to the entire Internet!

A long time ago, before computers existed, people thought about numbers in different ways. There was a man named Gottfried Wilhelm Leibniz who lived over 300 years ago. He was fascinated by the idea of using just two numbers for counting. He looked at ancient Chinese texts, which used two symbols to understand the world, and he thought, ‘Wow, we could use this idea for math!’

And that’s what started the amazing story of binary language. But it wasn’t until much later, when another smart person named George Boole came along, that this idea became super important for computers. He came up with rules about how 0s and 1s could work together, kind of like a game, which is now called ‘Boolean algebra.’

Now, every time you play a video game, send a text, or draw a picture on a tablet, binary language is working behind the scenes. It’s like the secret code that all our electronic friends speak to make things happen.

## Understanding Binary Digits

Binary code is like a row of light switches that can be either off (0) or on (1). Each switch’s position represents a different amount of power, doubling with each move to the left.

Position (from right) | 4th | 3rd | 2nd | 1st |
---|---|---|---|---|

Power of 2 | 2^{3} | 2^{2} | 2^{1} | 2^{0} |

Value (if ‘on’) | 8 | 4 | 2 | 1 |

**Adding Binary Numbers**

To add binary numbers, you line them up and add them just like in decimal, but remember: 1+1 equals 10 in binary, because there are only two digits.

1 | (carry over) | |
---|---|---|

1 | 1 |

+ | 1 | 0 |
---|---|---|

1 | 0 | 0 (equals 4) |

Let’s consider the decimal number 123, which is the format commonly used by humans. This number is broken down by place value, where each digit represents a different amount of hundreds, tens, and ones.

Here’s how it works with the place values written out:

Hundreds (100)or (10^{10}) | Tens (10)or (10^{1}) | Ones (1)or(10^{0}) |
---|---|---|

1 | 2 | 3 |

To calculate the value, you multiply each digit by its place value and add them together:

- For the hundreds place: 1 * 100 = 100
- For the tens place: 2 * 10 = 20
- For the ones place: 3 * 1 = 3

When you add them all up, you get 100 + 20 + 3 = 123. This method of calculation using place values is how we can understand and work with numbers in the decimal system.

In computer language using binary code, the sequence ‘000’ represents the number 0. This is similar to our human decimal system. However, in binary:

- The rightmost position is known as the ‘ones’ place.
- The middle position represents the ‘twos’ place.
- The leftmost position stands for the ‘fours’ place.

Here’s how the positions and their respective values line up:

4s (Four) | 2s (Two) | 1s (One) | Binary | Decimal Equivalent |
---|---|---|---|---|

0 | 0 | 0 | 000 | 0 |

Each column represents a different value, doubling as you move to the left. When all positions are set to ‘0’, the total value is 0.

In our everyday decimal system, we use the powers of 10 to determine the value of each position:

1 = (10^{0}), 10 = (10^{1}), 100 = (10^{2}), 1000 = (10^{3}), 10 000 = (10^{4}), and so on.

Conversely, computers operate using binary, where each position is valued based on powers of 2:

1 = (2^{0}), 2 = (2^{1}), 4 = (2^{2}), 8 = (2^{3}), 16 = (2^{4}), 32 = (2^{5}),etc.

Thus, the base difference between decimal and binary numbers changes the way we calculate value.

Certainly, let’s create a table to visualize the binary representation of the numbers 1 through 5, and explain how each value is derived using powers of 2.

Decimal | Binary | Calculation | Explanation |

1 | 001 | (2^{2} * 0) + (2^{1} * 0) + (2^{0} * 1) | Only the ‘1s’ place is on, so the value is 1. |

2 | 010 | (2^{2} * 0) + (2^{1}* 1) + (2^{0}* 0) | Only the ‘2s’ place is on, representing the value of 2. |

3 | 011 | (2^{2} * 0) + (2^{1} * 1) + (2^{0}* 1) | The ‘2s’ and ‘1s’ places are on, adding up to 3 (2 + 1). |

4 | 100 | (2^{2} * 1) + (2^{1}* 0) + (2^{0}* 0) | The ‘4s’ place is on, representing the value of 4. |

5 | 101 | (2^{2} * 1) + (2^{1} * 0) + (2^{0}* 1) | The ‘4s’ and ‘1s’ places are on, combining to make 5 (4 + 1). |

In the binary system, you move to the next highest place value when you’ve used up all combinations in the current places. So after ‘011’ (which is 3 in binary), you move to the next place value to represent 4 (‘100’ in binary), and for 5, you turn on the ‘4s’ and ‘1s’ places while leaving the ‘2s’ place off (‘101’ in binary).

If you add an additional column to the binary system, you’re increasing the highest value that can be represented. In binary, each additional column represents a higher power of 2. So, adding a column to the left means adding a “8s” place (2^3), and it doubles the highest number you can represent with the existing columns.

Here’s what the table would look like with an additional column for the “8s” place:

Decimal | Binary | Calculation |

1 | 0001 | (2^{3} * 0) + (2^{2} * 0) + (2^{1} * 0) + (2^{0} * 1) |

2 | 0010 | (2^{3} * 0) + (2^{2} * 0) + (2^{1} * 1) + (2^{0} * 0) |

3 | 0011 | (2^{3} * 0) + (2^{2} * 0) + (2^{1} * 1) + (2^{0} * 1) |

4 | 0100 | (2^{3} * 0) + (2^{2} * 1) + (2^{1} * 0) + (2^{0} * 0) |

5 | 0101 | (2^{3} * 0) + (2^{2} * 1) + (2^{1} * 0) + (2^{0} * 1) |

6 | 0110 | (2^{3} * 0) + (2^{2} * 1) + (2^{1} * 1) + (2^{0} * 0) |

7 | 0111 | (2^{3} * 0) + (2^{2} * 1) + (2^{1} * 1) + (2^{0} * 1) |

8 | 1000 | (2^{3} * 1) + (2^{2} * 0) + (2^{1} * 0) + (2^{0} * 0) |

With the addition of the “8s” place, you can now represent numbers up to 15 (1111 in binary) without adding any more columns. Each new column added to the left continues to double the highest number you can represent.

**The ASCII Table (American Standard Code for Information Interchange)**

The original ASCII is a 7-bit encoding table consists of a list of 128 characters along with their corresponding decimal, binary, and hexadecimal codes. An ASCII table is usually divided into two sections: the standard ASCII set (0-127) and the extended ASCII set (128-255). The standard set includes control characters (0-31 and 127), printable characters (32-126), which cover letters, numbers, punctuation marks and some miscellaneous symbols. For each character, the table lists its representation in decimal, binary, hexadecimal, and character form. For example, the capital letter “A” is represented in decimal as 65, in binary as 01000001, and in hexadecimal as 41.

Dec | Hex | Char | Dec | Hex | Char | Dec | Hex | Char | Dec | Hex | Char |
---|---|---|---|---|---|---|---|---|---|---|---|

0 | 00 | NUL | 32 | 20 | ( | 64 | 40 | @ | 96 | 60 | ` |

1 | 01 | SOH | 33 | 21 | ! | 65 | 41 | A | 97 | 61 | a |

2 | 02 | STX | 34 | 22 | “ | 66 | 42 | B | 98 | 62 | b |

3 | 03 | ETX | 35 | 23 | # | 67 | 43 | C | 99 | 63 | c |

4 | 04 | EOT | 36 | 24 | $ | 68 | 44 | D | 100 | 64 | d |

5 | 05 | ENQ | 37 | 25 | % | 69 | 45 | E | 101 | 65 | e |

6 | 06 | ACK | 38 | 26 | & | 70 | 46 | F | 102 | 66 | f |

7 | 07 | BEL | 39 | 27 | ‘ | 71 | 47 | G | 103 | 67 | g |

8 | 08 | BS | 40 | 28 | ( | 72 | 48 | H | 104 | 68 | h |

9 | 09 | TAB | 41 | 29 | ) | 73 | 49 | I | 105 | 69 | i |

10 | 0A | LF | 42 | 2A | * | 74 | 4A | J | 106 | 6A | j |

11 | 0B | VT | 43 | 2B | + | 75 | 4B | K | 107 | 6B | k |

12 | 0C | FF | 44 | 2C | , | 76 | 4C | L | 108 | 6C | l |

13 | 0D | CR | 45 | 2D | – | 77 | 4D | M | 109 | 6D | m |

14 | 0E | SO | 46 | 2E | . | 78 | 4E | N | 110 | 6E | n |

15 | 0F | SI | 47 | 2F | / | 79 | 4F | O | 111 | 6F | o |

16 | 10 | DLE | 48 | 30 | 0 | 80 | 50 | P | 112 | 70 | p |

17 | 11 | DC1 | 49 | 31 | 1 | 81 | 51 | Q | 113 | 71 | q |

18 | 12 | DC2 | 50 | 32 | 2 | 82 | 52 | R | 114 | 72 | r |

19 | 13 | DC3 | 51 | 33 | 3 | 83 | 53 | S | 115 | 73 | s |

20 | 14 | DC4 | 52 | 34 | 4 | 84 | 54 | T | 116 | 74 | t |

21 | 15 | NAK | 53 | 35 | 5 | 85 | 55 | U | 117 | 75 | u |

22 | 16 | SYN | 54 | 36 | 6 | 86 | 56 | V | 118 | 76 | v |

23 | 17 | ETB | 55 | 37 | 7 | 87 | 57 | W | 119 | 77 | w |

24 | 18 | CAN | 56 | 38 | 8 | 88 | 58 | X | 120 | 78 | x |

25 | 19 | EM | 57 | 39 | 9 | 89 | 59 | Y | 121 | 79 | y |

26 | 1A | SUB | 58 | 3A | : | 90 | 5A | Z | 122 | 7A | z |

27 | 1B | ESC | 59 | 3B | ; | 91 | 5B | [ | 123 | 7B | { |

28 | 1C | FS | 60 | 3C | < | 92 | 5C | \ | 124 | 7C | | |

29 | 1D | GS | 61 | 3D | = | 93 | 5D | ] | 125 | 7D | } |

30 | 1E | RS | 62 | 3E | > | 94 | 5E | ^ | 126 | 7E | ~ |

31 | 1F | US | 63 | 3F | ? | 95 | 5F | _ | 127 | 7F | DEL |

**Binary to Text**

ASCII indeed has a mapping for punctuation symbols and much more. Text editors like Notepad, TextEdit, and Microsoft Word use this mapping to display binary data as human-readable text.

Each letter or symbol is matched to a binary number. For example, using the ASCII system, the letter ‘H’ is represented by the number 72, which is ‘1001000’ in binary.

The number 72 in binary is written as follows:

72 in binary = 1001000

So in binary, the digit 72 consists of 7 digits, with the bit values from right to left being 0, 0, 0, 1, 0, 0, and 1.

The binary sequence is broken down into 8-bit segments (1 byte each), with each segment representing a different character. Here’s how the binary value translates to a decimal number and then to the ASCII character:

Binary (8 bits) | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | ASCII Character | Decimal Value |

‘H’ in binary | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | H | 72 |

Let’s break down the phrase “Hello World!” into its binary ASCII representation, one character at a time. Each character is represented by an 8-bit binary number (1 byte).

Here’s a table showing the ASCII binary representation for each character in “**Hello World!**“:

Character | ASCII Decimal | ASCII Binary |
---|---|---|

H | 72 | 01001000 |

e | 101 | 01100101 |

l | 108 | 01101100 |

l | 108 | 01101100 |

o | 111 | 01101111 |

Space | 32 | 00100000 |

W | 87 | 01010111 |

o | 111 | 01101111 |

r | 114 | 01110010 |

l | 108 | 01101100 |

d | 100 | 01100100 |

! | 33 | 00100001 |

To assemble “Hello World!” in binary, you would string these binary codes together in sequence. A computer reads each 8-bit segment, finds the matching ASCII character, and then displays the text on the screen. The result is the recognizable phrase “Hello World!”, but to a computer, it’s just a series of off and on signals represented by 0s and 1s.

**Bits 101: The Basics of Digital Information**

A bit is the most basic unit of data in computing and digital communications. The term is a contraction of “binary digit,” where a bit can have a value of either 0 or 1. You can think of a bit as a tiny switch that can be turned off (0) or on (1). In essence, bits are the building blocks of all digital data.

**How Bits Work**

**Single Bit**: A single bit can represent two states or values—again, simply on or off, true or false, yes or no. It’s binary, which means two states are possible.**Multiple Bits**: When you combine bits, the number of states or values they can represent increases exponentially. Two bits can represent four possible combinations (00, 01, 10, 11), three bits can represent eight combinations, and so on.

**Bytes and Their Multiples**

**Byte**: A byte is a group of 8 bits and is a standard chunk of data used to represent a character in many encoding systems, like ASCII. For instance, the letter ‘A’ is represented by the byte ‘01000001’ in binary.**Kilobyte (KB)**: Technically, a kilobyte is 1,024 bytes, which is 2^{10}(as the binary system is base-2). However, in general usage, it’s often rounded to mean 1,000 bytes.**Megabyte (MB)**: A megabyte is approximately 1 million bytes or specifically 1,024 kilobytes. It’s commonly used to refer to the size of small files or folders on a computer.**Gigabyte (GB)**: A gigabyte is about 1 billion bytes, or 1,024 megabytes. It’s often the unit used to measure computer RAM and storage device capacities.**Terabyte (TB)**and beyond: With the massive storage requirements of today’s data, we also have terabytes (1,024 gigabytes), petabytes (1,024 terabytes), exabytes, and so on.

**Practical Use of Bits and Bytes**

**Storage**: When you save a file on your computer, it takes up a certain number of bytes, depending on the file’s size.**Transmission**: Internet speeds are often measured in bits per second. For example, a 100 Mbps (megabits per second) connection can theoretically transfer 100 million bits every second.**Data Representation**: Bits are used to encode all sorts of data—text, images, audio, and video. This is done through various encoding schemes, which define what pattern of bits represents what piece of data.

Remember, everything that’s stored or processed by a computer is ultimately broken down into a series of bits. By understanding bits and bytes, you can get a clearer idea of how computers operate, how data is stored, and how information is communicated in the digital world.

## Leave a Reply