# Homework Help: How do I convert a number with a decimal point to binary?

1. Sep 10, 2012

### xod_s

1. The problem statement, all variables and given/known data

I dont know how to convert the number 148.3 to binary form.

2. Relevant equations

Just having a decimal point really throws in a monkey wrench in the "keep dividing by and if a number halfed has a decimal point ignore the after decimal point stuff two" procedure.

3. The attempt at a solution

I got the answer 101010001 but I looked the answer up and it's apparently 10010100.How can this be?.I was desperate enough to just look up the answers but I still dont how 200.45 can be 11001000,100.9 can be 1100100 and 9001.375 can be 10001100101001

If it helps me teacher wrote a note that looks like this ...

{want to convert to 0.7 decimal to binary -->
*multiply by 2 and list surplus (0,1) 0.7 decimal=0.1011001100
½,¼,1/8,1/16, 1/128,1/256

surplus 0.7*2
______________
I 1 I .4*2
I 0 I .8*2
V 1 I .6*2
0 I .4*2
0 I .8*2
1 I .6*2 }
1. The problem statement, all variables and given/known data

2. Relevant equations

3. The attempt at a solution

2. Sep 10, 2012

### Staff: Mentor

Let's look at things in two parts: the integer part and the fractional part.

The integer part is 148, which is 9416 in hexadecimal (i.e., base-16). The nice thing about hex is that it is so easy to convert to binary. You just convert each hex digit.
916 = 1001
416 = 0100

So 14810 = 9416 = 100101002, which agrees with the answer you looked up. Note that this doesn't include the fractional part, .3.

Typo?
I don't see how it can be, either. Just as your decimal fraction has a decimal point, your binary fraction will need a "binary" point, to separate the integer part from the fractional part.
What seems to be going on in the table is this:

Multiply it by 2 to get 1.4. Save the part to the left of the decimal point, 1.
Take the new fractional part -- 0.4
Multiply it by 2 to get 0.8. Save the part to the left of the decimal point, 0.
Take the new fractional part -- 0.8
Multiply it by 2 to get 1.6. Save the part to the left of the decimal point, 1.
Take the new fractional part -- 0.6
Multiply it by 2 to get 1.2. Save the part to the left of the decimal point, 1.
etc.

This means that .710 ≈ .1011...2

The binary fraction means 1 * 1/2 + 0 * 1/4 + 1 * 1/8 + 1 * 1/16. If you add these up you get .6875, which is a little smaller that .7. I stopped the process early, so I left off some terms, which makes my result a little small. The more terms you add, the closer you'll get to .7.

I should mention that some decimal fractions that have nice compact forms in base-10 have infinitely long representations in binary, and 0.7 is one such number.

3. Sep 10, 2012

### Ray Vickson

The decimal part 0.3 cannot be converted exactly to binary for any finite number of bits after the decimal point. The approximation .1011001100 evaluates to 179/256 ≈ 0.69921875.

This issue is well-known to anyone who has written computer codes in Fortran, C, Basic, or whatever: it is the source of some occasional software failures, if the person writing the code does not take care to account for it.

RGV

4. Sep 10, 2012

### Simon Bridge

A decimal number in some base b is written xy.z (say) where x,y, and z are single digits in that base.

This means that the number is $x\times b^2 + y\times b^1 + z \times b^{-1}$

So - decimal 0.3 is $3\times 10^{-1}$ and the task is to expand 0.3 in terms of negative powers of 2.

This is a similar process for positive powers.
Thus:
dec[0.5] = bin[0.1]
dec[0.25] = bin[0.01]
dec[0.75] = bin[0.11]
... and so on.

Note, some decimals like 0.1 and 0.3 are recurring in binary ;)

another example