1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

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

  1. Sep 10, 2012 #1
    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
    read down 1 I .2*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. jcsd
  3. Sep 10, 2012 #2

    Mark44

    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.

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




    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:

    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.
     
  4. Sep 10, 2012 #3

    Ray Vickson

    User Avatar
    Science Advisor
    Homework Helper

    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
     
  5. Sep 10, 2012 #4

    Simon Bridge

    User Avatar
    Science Advisor
    Homework Helper
    Gold Member
    2016 Award

    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
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: How do I convert a number with a decimal point to binary?
  1. How do I find point D? (Replies: 3)

  2. Binary to decimal. (Replies: 4)

Loading...