logo

Operadores bit a bit de Python

Operadores Se utilizan para realizar operaciones sobre valores y variables. Estos son los símbolos especiales que realizan cálculos aritméticos y lógicos. El valor sobre el que opera el operador se conoce como Operando.

Operadores bit a bit de Python

Los operadores bit a bit de Python se utilizan para realizar cálculos bit a bit en números enteros. Los números enteros primero se convierten a binarios y luego se realizan operaciones en cada bit o par de bits correspondiente, de ahí el nombre de operadores bit a bit. Luego, el resultado se devuelve en formato decimal.

Nota: Los operadores bit a bit de Python solo funcionan con números enteros.




OPERADORNOMBREDESCRIPCIÓNSINTAXIS

Operador AND bit a bit

&Bit a bit YBit de resultado 1, si ambos bits del operando son 1; de lo contrario resulta bit 0.x & y

Operador OR bit a bit

bloquear anuncios de youtube en android
|O bit a bitBit de resultado 1, si alguno de los bits del operando es 1; de lo contrario resulta bit 0.x | y

Operador XOR bit a bit

^XOR bit a bitBit de resultado 1, si alguno de los bits del operando es 1 pero no ambos; de lo contrario, el resultado es el bit 0.x ^ y

Operador NOT bit a bit

~Bit a bit NO

Invierte bits individuales.

~x

Desplazamiento a la derecha bit a bit de Python

>>Desplazamiento bit a derecha

El valor del operando izquierdo se mueve hacia la derecha la cantidad de bits

especificado por el operando derecho.

x>>

Desplazamiento a la izquierda bit a bit de Python

<<Desplazamiento bit a izquierda

El valor del operando izquierdo se mueve hacia la izquierda la cantidad de bits

especificado por el operando derecho.

x<<

Entendamos cada operador uno por uno.

Operador AND bit a bit

El Python bit a bit Y (&) El operador toma dos patrones de bits de igual longitud como parámetros. Se comparan los números enteros de dos bits. Si los bits en las posiciones comparadas de los patrones de bits son 1, entonces el bit resultante es 1. Si no, es 0.

Ejemplo: Tome dos valores de bits X e Y, donde X = 7 = (111)2y Y = 4 = (100)2. Tome Bitwise y de X e y

Nota: Aquí, (111)2representar un número binario.

Pitón
a = 10 b = 4 # Print bitwise AND operation print('a & b =', a & b)>

Producción

a & b = 0>

Operador OR bit a bit

El Python bit a bit O (|) El operador toma como límites dos diseños de bits de longitud equivalente; si los dos bits en la posición observada son 0, el siguiente bit es cero. Si no, es 1.

¿Dónde está la configuración del navegador?

Ejemplo: Tome dos valores de bits X e Y, donde X = 7 = (111)2y Y = 4 = (100)2. Tome OR bit a bit de ambos X, Y

Pitón
a = 10 b = 4 # Print bitwise OR operation print('a | b =', a | b)>

Producción

a | b = 14>

Operador XOR bit a bit

El Operador XOR (^) bit a bit de Python También conocido como operador OR exclusivo, se utiliza para realizar la operación XOR en dos operandos. XOR significa exclusivo o y devuelve verdadero si y sólo si exactamente uno de los operandos es verdadero. En el contexto de operaciones bit a bit, compara los bits correspondientes de dos operandos. Si los bits son diferentes, devuelve 1; en caso contrario, devuelve 0.

Ejemplo: Tome dos valores de bits X e Y, donde X = 7 = (111)2 e Y = 4 = (100)2. Tome Bit a bit y de X e Y

Pitón
a = 10 b = 4 # print bitwise XOR operation print('a ^ b =', a ^ b)>

Producción

a ^ b = 14>

Operador NOT bit a bit

Los tres operadores bit a bit anteriores son operadores binarios y necesitan dos operandos para funcionar. Sin embargo, a diferencia de los demás, este operador opera con un solo operando.

El Operador Python bit a bit no (~) trabaja con un solo valor y devuelve su complemento a uno. Esto significa que alterna todos los bits del valor, transformando 0 bits en 1 y 1 bits en 0, lo que da como resultado el complemento a uno del número binario.

Ejemplo : Tome dos valores de bits X e Y, donde X = 5= (101)2. Tome Bit a bit NO de X.

Pitón
a = 10 b = 4 # Print bitwise NOT operation print('~a =', ~a)>

Producción

~a = -11>

Cambio bit a bit

Estos operadores se utilizan para desplazar los bits de un número hacia la izquierda o hacia la derecha, multiplicando o dividiendo el número por dos respectivamente. Se pueden utilizar cuando tenemos que multiplicar o dividir un número por dos.

Pitón Desplazamiento bit a derecha

Desplaza los bits del número hacia la derecha y, como resultado, llena 0 en los espacios vacíos a la izquierda (llena 1 en el caso de un número negativo). Efecto similar al de dividir el número con alguna potencia de dos.

  Example 1:   a = 10 = 0000 1010 (Binary) a>> 1 = 0000 0101 = 5 Ejemplo 2: a = -10 = 1111 0110 (Binario) a>> 1 = 1111 1011 = -5>
Pitón
a = 10 b = -10 # print bitwise right shift operator print('a>> 1 =', a>> 1) print('b>> 1 =', b>> 1)>

Producción

a>> 1 = 5b>> 1 = -5>

Pitón Desplazamiento bit a izquierda

Desplaza los bits del número hacia la izquierda y, como resultado, llena 0 en los espacios vacíos hacia la derecha. Efecto similar al de multiplicar el número con alguna potencia de dos.

  Example 1:   a = 5 = 0000 0101 (Binary) a << 1 = 0000 1010 = 10 a << 2 = 0001 0100 = 20   Example 2:   b = -10 = 1111 0110 (Binary) b << 1 = 1110 1100 = -20 b << 2 = 1101 1000 = -40>
Pitón
a = 5 b = -10 # print bitwise left shift operator print('a << 1 =', a << 1) print('b << 1 =', b << 1)>

Producción:

a << 1 = 10 b << 1 = -20>

Sobrecarga del operador bit a bit

Sobrecarga del operador significa dar un significado extendido más allá de su significado operativo predefinido. Por ejemplo, el operador + se utiliza para sumar dos números enteros, así como para unir dos cadenas y fusionar dos listas. Se puede lograr porque el operador '+' está sobrecargado por la clase int y la clase str. Es posible que hayas notado que el mismo operador o función incorporado muestra un comportamiento diferente para objetos de diferentes clases, esto se llama Sobrecarga del operador .

A continuación se muestra un ejemplo sencillo de sobrecarga de operadores bit a bit.

Pitón
# Python program to demonstrate # operator overloading class Geek(): def __init__(self, value): self.value = value def __and__(self, obj): print('And operator overloaded') if isinstance(obj, Geek): return self.value & obj.value else: raise ValueError('Must be a object of class Geek') def __or__(self, obj): print('Or operator overloaded') if isinstance(obj, Geek): return self.value | obj.value else: raise ValueError('Must be a object of class Geek') def __xor__(self, obj): print('Xor operator overloaded') if isinstance(obj, Geek): return self.value ^ obj.value else: raise ValueError('Must be a object of class Geek') def __lshift__(self, obj): print('lshift operator overloaded') if isinstance(obj, Geek): return self.value << obj.value else: raise ValueError('Must be a object of class Geek') def __rshift__(self, obj): print('rshift operator overloaded') if isinstance(obj, Geek): return self.value>> obj.value else: rise ValueError('Debe ser un objeto de clase Geek') def __invert__(self): print('Invertir operador sobrecargado') return ~self.value # Código del controlador si __name__ == '__main__': a = Friki(10) b = Friki(12) imprimir(a & b) imprimir(a | b) imprimir(a ^ b) imprimir(a<< b) print(a>> b) imprimir(~a)>

Producción:

clasificación rápida java
And operator overloaded 8 Or operator overloaded 14 Xor operator overloaded 8 lshift operator overloaded 40960 rshift operator overloaded 8 Invert operator overloaded -11>

Nota: Para saber más sobre la sobrecarga de operadores haga clic aquí .