How do I convert a number with a decimal point to binary?

  • #1
8
0

Homework Statement



I don't know how to convert the number 148.3 to binary form.


Homework 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.



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 don't 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
read down 1 I .2*2
0 I .4*2
0 I .8*2
1 I .6*2 }
 
Physics news on Phys.org
  • #2
xod_s said:

Homework Statement



I don't know how to convert the number 148.3 to binary form.


Homework 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.



The Attempt at a Solution



I got the answer 101010001 but I looked the answer up and it's apparently 10010100.
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.

I'll leave that to you, after you've read my comments below.




xod_s said:
How can this be?.I was desperate enough to just look up the answers but I still don't how 200.45 can be 11001000,100.9
Typo?
xod_s said:
can be 1100100 and 9001.375 can be 10001100101001
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.
xod_s said:
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
read down 1 I .2*2
0 I .4*2
0 I .8*2
1 I .6*2 }

What seems to be going on in the table is this:

Start with the fractional part -- 0.7
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
xod_s said:

Homework Statement



I don't know how to convert the number 148.3 to binary form.


Homework 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.



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 don't 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
read down 1 I .2*2
0 I .4*2
0 I .8*2
1 I .6*2 }

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
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 [itex]x\times b^2 + y\times b^1 + z \times b^{-1}[/itex]

So - decimal 0.3 is [itex]3\times 10^{-1}[/itex] 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
http://answers.yahoo.com/question/index?qid=20090819210335AAYfQaE
 

Suggested for: How do I convert a number with a decimal point to binary?

Replies
1
Views
444
Replies
3
Views
579
Replies
3
Views
174
Replies
3
Views
860
Replies
12
Views
589
Replies
4
Views
630
Replies
5
Views
1K
Back
Top