¿Cómo puedo añadir, restar y comparar números binarios en Python, sin convertir a decimal?

  • Es esta una tarea pregunta, yo.e están preguntando cómo hacer de las matemáticas en un nivel bajo? Ver (stackoverflow.com/questions/1149929/…)
  • Puede dar algunos ejemplos de lo que usted está tratando de lograr?
  • los números ya están binario en python. Ellos se convierten en binario cuando el programa se inicia y sólo se vuelve a convertir a decimal cuando se utiliza algo como str() o imprimir
InformationsquelleAutor | 2009-10-06

8 Comentarios

  1. 113

    Usted puede convertir entre una representación de cadena de los binarios utilizando bin() y int()

    >>> bin(88)
    '0b1011000'
    >>> int('0b1011000', 2)
    88
    >>> 
    
    >>> a=int('01100000', 2)
    >>> b=int('00100110', 2)
    >>> bin(a & b)
    '0b100000'
    >>> bin(a | b)
    '0b1100110'
    >>> bin(a ^ b)
    '0b1000110'
    • Gracias. Sí, esta es una tarea en casa. Los estados de asignación que se supone que debo dejar los números en ‘formato binario’ cuando se realiza ._add, ._sub, ._gt, ._lt, y ._eq. Su ejemplo de arriba se parece a convertir bin a int. No estoy seguro de si esto va a ser aceptable, pero no veo ninguna otra manera podría ser, excepto su ejemplo.
    • También puede utilizar el binario literal, cuando el uso de Python 2.6 y posteriores. En lugar de int('01100111',2) escribir 0b01100111 por ejemplo, que es 103.
  2. 9

    Creo que estás confundido acerca de lo binario. Binario y decimal, son sólo diferentes representaciones de un número – por ejemplo, 101 base 2 y 5 de la base 10 son el mismo número. Las operaciones de sumar, restar y comparar operar en números – 101 base 2 == 5 base 10 y la suma es la misma operación lógica no importa lo de la base de que se está trabajando. El hecho de que el intérprete de python puede almacenar cosas como binario internamente no afectan a la forma de trabajar con ella – si usted tiene un tipo entero, sólo utilice +, -, etc.

    Si usted tiene cadenas de dígitos binarios, usted tendrá que escribir su propia aplicación o convertir el uso de la int(binaryString, 2) la función.

  3. 7

    Si estamos hablando de los operadores bit a bit, entonces usted está después de:

    ~ Not
    ^ XOR
    | Or
    & And

    De lo contrario, los números binarios funcionan exactamente de la misma como decimal de los números, porque los números son los números, no importa cómo se mire en ellos. La única diferencia entre decimal y binario es: ¿cómo podemos representar los datos cuando estamos mirando.

    • Siempre es divertido escribir add, sub, etc, con operadores bit a bit. Para cualquier persona interesada en esto, busque guías en los circuitos, más específicamente de la mitad de los sumandos, a continuación, lleno de complementos y, a continuación, finalmente restador, tal vez incluso un sumador-substractor. Desde aquí se puede traducir en operadores bit a bit.
  4. 3

    Binario, decimal, hexadecimal… la base de sólo importa cuando la lectura o la salida de los números, la adición de números binarios es la misma como la adición de un número decimal : es sólo una cuestión de representación.

  5. 0

    A continuación es una re-escritura de una previamente publicado función:

    def addBinary(a, b): # Example: a = '11' + b =' 100' returns as '111'.    
        for ch in a: assert ch in {'0','1'}, 'bad digit: ' + ch    
        for ch in b: assert ch in {'0','1'}, 'bad digit: ' + ch    
        sumx = int(a, 2) + int(b, 2)    
        return bin(sumx)[2:]
  6. -1

    No estoy seguro si es útil, pero dejo mi solución aquí:

    class Solution:
        # @param A : string
        # @param B : string
        # @return a strings
        def addBinary(self, A, B):
            num1 = bin(int(A, 2))
            num2 = bin(int(B, 2))
            bin_str = bin(int(num1, 2)+int(num2, 2))
            b_index = bin_str.index('b')
            return bin_str[b_index+1:]
    
    s = Solution()
    print(s.addBinary("11", "100"))
  7. -4

    Creo que estás confundido acerca de lo binario. Binario y decimal, son sólo diferentes representaciones de un número – por ejemplo, 101 base 2 y 5 de la base 10 son el mismo número. Las operaciones de sumar, restar y comparar operar en números – 101 base 2 == 5 base 10 y la suma es la misma operación lógica no importa lo de la base de que se está trabajando.

Dejar respuesta

Please enter your comment!
Please enter your name here