Programa de Python para convertir cualquier número real positivo en string binaria

Dado cualquier número real mayor o igual a cero que se pasa como flotante, imprime la representación binaria del número real ingresado.

Ejemplos:

Input: 123.5
Output: 1 1 1 1 0 1 1 . 1

Input: 0.25
Output: .01

Lógica matemática junto con los pasos realizados en la programación:

Cualquier número real se divide en dos partes: la parte entera y la parte fraccionaria . Para ambas partes, las operaciones y la lógica son diferentes para convertirlas a representación binaria.

  • Parte entera:

    Paso 1: divide la parte entera por 2 y anota su resto (será 0 o 1).
    Paso 2: Vuelva a dividir la parte entera por 2 (entero obtenido del paso 1 al dividir el entero inicial por 2) y anote su Resto.
    Repita estos pasos hasta que su número entero no se convierta en cero.
    Paso 3: Ahora invierta la secuencia de Restos que anotó en cada paso. Y esta es su representación binaria de la parte entera.

    Pasos de programación:

    def intpartbinary(m):
    
        a=[]
        n=int(m)
    
        while n!=0:
            a.append(n%2)
            n=n//2
        a.reverse()
    
        return a

    Definición de una función intpartbinary()para convertir parte entera a representación binaria. Defina una lista vacía tomando la parte entera de un número real ingresado y divídalo por 2 y almacene su resto en una lista vacía cada vez while n==0, invierta la lista y esa será la representación binaria de la parte entera.

  • Parte fraccionaria:
    Paso 1: Multiplica la parte fraccionaria por 2 y escribe solo su parte entera.
    Paso 2: reste la parte entera del número obtenido en el paso 1 (multiplicando la parte fraccionaria por 2) y nuevamente multiplique la parte fraccionaria por 2.
    Repita estos pasos hasta que la parte fraccionaria no se convierta en cero. La secuencia obtenida es la representación binaria de la parte fraccionaria dada.

    Pasos de programación:

    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

    Definición de una función decimalpartbinary()para convertir parte fraccionaria a binaria. Nuevamente defina una lista vacía, extrayendo la parte fraccionaria del número real ingresado restando la parte entera del número real ingresado del número real ingresado. Ahora multiplíquelo por 2 y almacene solo la parte entera del número resultante en la lista y nuevamente tomando la parte fraccionaria y multiplicándola por 2, almacene su parte entera. Repite este proceso hasta que la parte fraccionaria no se convierta en cero, y esa será la representación binaria de la parte fraccionaria.

Ahora, por fin combinando, toda la conversión binaria en el formato que se muestra a continuación será la representación binaria del número real ingresado. En primer lugar, escriba la secuencia inversa de residuos y un punto (punto), luego escriba la secuencia de partes enteras que obtuvimos al multiplicar la parte fraccionaria por 2 y extraer solo la parte entera.

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=' ')

Para ello, definiremos una función llamada binarycode(). Defina una list c=[]lista invertida vacía, primero almacene el resto obtenido al dividir la parte entera por 2 cada vez y luego almacene un decimal en esa lista c, ahora almacene la lista de la parte entera obtenida al multiplicar la parte fraccionaria por 2 cada vez y almacene solo la parte entera . Ahora imprima la lista c. Finalmente, tendremos nuestra Representación Binaria de Número Real en Representación Binaria.

A continuación se muestra la implementación.

# defining a function to convert 
# integer part to binary
def 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 binary
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
# arranging all data into suitable format
def 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 Code
binarycode(123.5)

Producción:

Binary code of given function is

1 1 1 1 0 1 1 . 1 

Publicación traducida automáticamente

Artículo escrito por shergilljagseer y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *