Python Program to Convert any Positive Real Number to Binary string

10 May, 2020
Given any Real Number greater than or equal to zero that is passed in as float, print binary representation of entered real number.
Examples:
Input: 123.5
Output: 1 1 1 1 0 1 1 . 1

Input: 0.25
Output: .01
Mathematical Logic along with steps done in programming:
Any real number is divided into two parts: The integer part and the Fraction part. For both parts operations and logic are different to convert them to binary representation.
Integer Part:Step 1: Divide Integer part by 2 and note its Remainder(it will be either 0 or 1).Step 2: Again divide integer part by 2(integer obtained from step 1 by dividing initial integer by 2) and note its Remainder.Repeat these steps until your integer does not becomes zero.Step 3: Now reverse the sequence of Remainders you noted at each step.and this is your binary representation of integer part.Programming steps:def intpartbinary(m):

    a=[]
    n=int(m)

    while n!=0:
        a.append(n%2)
        n=n//2
    a.reverse()

    return aDefining a function intpartbinary() to convert integer part to binary representation. Define an Empty list taking integer part of an entered real number and divide it by 2 and store its remainder into an empty list each time while n==0, reverse the list and that will be the binary representation of integer part.
Step 1: Divide Integer part by 2 and note its Remainder(it will be either 0 or 1).Step 2: Again divide integer part by 2(integer obtained from step 1 by dividing initial integer by 2) and note its Remainder.Repeat these steps until your integer does not becomes zero.Step 3: Now reverse the sequence of Remainders you noted at each step.and this is your binary representation of integer part.
Programming steps:
def intpartbinary(m):

    a=[]
    n=int(m)

    while n!=0:
        a.append(n%2)
        n=n//2
    a.reverse()

    return a
Defining a function intpartbinary() to convert integer part to binary representation. Define an Empty list taking integer part of an entered real number and divide it by 2 and store its remainder into an empty list each time while n==0, reverse the list and that will be the binary representation of integer part.
Fractional Part:Step 1: Multiply fractional part by 2 and write its integer part only.Step 2: Subtract integer part from the number obtained in step 1(multiplying fraction part by 2) and again multiply fractional part by 2.Repeat these steps until the Fractional part does not become Zero. The sequence obtained is Binary representation of given fractional part.Programming Steps:def decimalpartbinary(m):

    a=[]
    n=m-int(m)

    while n!=0:
        x=2*n
        y=int(x)
        a.append(y)
        n=x-y

    return aDefining a function decimalpartbinary() to convert fractional part to binary. Again define an empty list, extracting fractional part from entered real number by subtracting integer part of entered real number from entered real number. Now multiply it by 2 and store only integer part of resulting number into the list and again taking fractional part and multiply by 2, store its integer part. Repeat this process until the fractional part does not become zero, and that will be the binary representation of the fractional part.
Programming Steps:
def decimalpartbinary(m):

    a=[]
    n=m-int(m)

    while n!=0:
        x=2*n
        y=int(x)
        a.append(y)
        n=x-y

    return a
Defining a function decimalpartbinary() to convert fractional part to binary. Again define an empty list, extracting fractional part from entered real number by subtracting integer part of entered real number from entered real number. Now multiply it by 2 and store only integer part of resulting number into the list and again taking fractional part and multiply by 2, store its integer part. Repeat this process until the fractional part does not become zero, and that will be the binary representation of the fractional part.
Now at last combining, all the binary conversion in given below format will be the binary representation of entered real number. Firstly write the reversed sequence of remainders and a dot(point) then write integer part sequence which we obtained by multiplying fraction part by 2 and extracting integer part only.
def binarycode(m):

    a = intpartbinary(m)
    b = decimalpartbinary(m)
    c = []

    for i in range(0, len(a)):
        c.append(a[i])

    c.append('.')

    for j in range(0, len(b)):
        c.append(b[j])

    print('Binary code of given function is\n')

    for k in range(0, len(c)):
        print(c[k], end=' ')
For this, we will define a function named binarycode(). Define an empty list c=[], firstly store reversed list of remainder obtained by dividing integer part by 2 each time and then store a decimal in that list c, now store the list of integer part obtained by multiplying fraction part by 2 each time and storing only integer part. Now print list c. Finally, we will have our Binary Representation of Real Number into Binary Representation.
Below is the implementation.
# defining a function to convert # integer part to binarydef intpartbinary(m):          a = []    n = int(m)          while n != 0:                  a.append(n % 2)        n = n//2              a.reverse()    return a  # defining a function to convert # fractional part to binarydef decimalpartbinary(m):          a = []    n = m-int(m)          while n != 0:                  x = 2 * n        y = int(x)        a.append(y)        n = x-y              return a# arranging all data into suitable formatdef binarycode(m):          # arranging all data to our desired     # format    a = intpartbinary(m)    b = decimalpartbinary(m)    c =[]          for i in range(0, len(a)):        c.append(a[i])              c.append('.')          for j in range(0, len(b)):        c.append(b[j])              print('Binary code of given function is\n')          for k in range(0, len(c)):        print(c[k], end =' ')            # Driver Codebinarycode(123.5)
Output:
Binary code of given function is

1 1 1 1 0 1 1 . 1 
binary-representation
Python
Python Programs
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.