## The simple math behind decimal-binary conversion algorithms

4 stars based on
60 reviews

To understand binary numbers, begin by recalling elementary school math. When we first learned about numbers, we were taught that, in the decimal system, things are organized into columns: H T O 1 9 3 such that "H" is the hundreds column, "T" is up and out binary puts k less than b tens column, and "O" is the ones column.

So the number "" is 1-hundreds plus 9-tens plus 3-ones. As you know, the decimal system uses the up and out binary puts k less than b to represent numbers. The binary system works under the exact same principles as the decimal system, only it operates in base 2 rather than base In other words, instead of columns being. Therefore, it would shift you one column to the left. For example, "3" in binary cannot be put into one column. What would the binary number be in decimal notation?

Click here to see the answer Try converting these numbers from binary to decimal: Since 11 is greater than 10, **up and out binary puts k less than b** one is put into the 10's column carriedand a 1 is recorded in the one's column of the sum. Thus, the answer is Binary addition works on the same principle, but the numerals are different. Begin with one-bit binary addition:.

In binary, any digit higher than 1 puts us a column to the left as would 10 in decimal notation. Record the 0 in the ones column, and carry the 1 to the twos column to get an answer of " The process is the same for multiple-bit binary numbers: Record the 0, carry the 1. Add 1 from carry: Multiplication in the binary system works up and out binary puts k less than b same way as in the decimal system: Follow the same rules as in decimal division.

For the sake of simplicity, throw away the remainder. Converting from decimal to binary notation is slightly more difficult conceptually, but can easily be done once you know how through the use of algorithms. Begin by thinking of a few examples. Almost as intuitive is the number 5: Then we just put this into columns. This process continues until we have a remainder of 0. Let's take a look at how it works. To convert the decimal number 75 to binary, we would find the largest power of 2 less than 75, which is Subtract 8 from 11 to get 3.

Thus, our number is Making this algorithm a bit more formal gives us: Find the largest power of two in D. Let this equal P. Put a 1 in binary column P. Subtract P from D. Put zeros in all columns which don't have ones. This algorithm is a bit awkward. Particularly step 3, "filling in the zeros. Now that we have an algorithm, we can use it to convert numbers from decimal to binary relatively painlessly.

Our first step is to find P. Subtracting leaves us with Subtracting 1 from P gives us 4. Next, subtract 16 from 23, to get 7. Subtract 1 from P gives us 3. Subtract 1 from P to get 1.

Subtract 1 from P to get 0. Subtract 1 from P to get P is now less than zero, so we stop. Another algorithm for converting decimal to binary However, this is not the only approach possible. We can start at the right, rather than the left. This gives us the rightmost digit as a starting point.

Now we need to do the remaining digits. One idea is to "shift" them. It is also easy to see that multiplying and dividing by 2 shifts everything by one column: Similarly, multiplying by 2 shifts in the other direction: Take the number Dividing by 2 gives Since we divided the number by two, we "took out" one power of two.

Also note that a1 is essentially "remultiplied" by two just by putting it in front of a[0], so it is automatically fit into the correct column. Now we can subtract 1 from 81 to see what remainder we still must place Dividing 80 by 2 gives We can divide by two again to get This is even, so we put a 0 in the 8's up and out binary puts k less than b. Since we already knew how to convert from binary to decimal, we can easily verify our result.

These techniques work well for non-negative integers, but how do we indicate negative numbers in the binary system? Before we investigate negative numbers, we note that the computer uses a fixed number of "bits" or binary digits. An 8-bit number is 8 digits long. For this section, we will work with 8 bits. The simplest way to indicate negation is signed magnitude. To indicatewe would simply put a "1" rather than a "0" as the first bit: In one's complement, positive numbers are represented as usual in regular binary.

However, negative numbers are represented differently. To negate a number, replace all zeros with ones, and ones with zeros - flip the bits. Thus, 12 would beand would be As in signed magnitude, the leftmost bit indicates the sign 1 is negative, 0 is positive. To compute the value of a negative number, flip the bits and translate as before. Begin up and out binary puts k less than b the number in one's complement. Add 1 if the number is negative.

Twelve would be represented asand as To verify this, let's subtract 1 fromto get If we flip the bits, we getor 12 in decimal.

In this notation, "m" indicates the total number of bits. Then convert back to decimal numbers.