En la entrada anterior, hablamos acerca de tres tipos básicos de variables en Python. En esta entrada veremos diferentes tipos de operadores que podemos utilizar...
Operadores aritméticos:
Veamos los operadores que podemos utilizar con nuestras variables o expresiones numéricas directamente desde el intérprete mediante ejemplos en print así puedan ir viendo los resultados:
Operadores lógicos:
Al igual que lo hicimos para los aritméticos, veamos los operadores lógicos en el intérprete mostrando los resultados de algunos ejemplos:
En caso de no saber álgebra de Bool y/o lógica proposicional, recomiendo visitar las entradas correspondientes para poder sacar el máximo provecho a estos operadores y entender los resultados que nos devuelven.
Operadores relacionales:
Los operadores relacionales utilizados en expresiones devuelven como resultado datos booleanos.
Para los ejemplos del intérprete declararemos al inicio dos variables numéricas y mediante los operadores relacionales devolveremos los resultados booleanos de las expresiones:
Operadores a nivel de bit:
Estos operadores actúan sobre la representación en binario de los dos operandos a los que se aplican.
*Entre estos tenemos el operador & , que sería un and bit a bit, devolviendo 1 si en ese bit ambos números tienen un 1 y 0 en caso contrario.
Veamos un ejemplo:
Expliquemos un poco este resultado para que se entienda, a es el número entero 5, en binario 101 y b es 7, en binario 111. El & compara bit a bit por lo que comparará el primer bit de los dos (1 y 1), el segundo de los dos (0 y 1) y finalmente el tercero de los dos (1 y 1). Estas tres comparaciones tienen como resultado: 1 la primera, 0 la segunda y 1 la tercera. Si juntamos los 3 resultados tenemos 101 que es el entero 5.
*También tenemos el operador | , un or bit a bit. Veamos el ejemplo anterior con este nuevo operador:
Analicemos el resultado: nuevamente tenemos 101 y 111, se evalúa bit a bit de la siguiente manera: (1 ó 1), (0 ó 1) y (1 ó 1) , obteniendo como resultado 111 que equivale a 7 en el sistema de numeración decimal.
* Como variante del or bit a bit, tenemos el xor bit a bit para el cual utilizaremos el operador ^. Este sería un or excluyente si recordamos un poco de lógica proposicional. Vamos al ejemplo:
Esta vez al hacer (1 xor 1), (0 xor 1) y (1 xor 1) obtenemos como resultado 010 que equivale a 2.
* También tenemos el operador ~ que corresponde a un not bit a bit, éste niega invierte los bits del operando. Si lo utilizamos con el a de los ejemplos anteriores:
* Por último tenemos los operadores de desplazamiento << y >> que sirven para desplazar los bits n posiciones a la izquierda o a la derecha respectivamente.
Donde tenemos 101 , si desplazamos esos bits a la izquierda 2 posiciones, debemos agregar 2 ceros al final con lo que tendríamos 10100 que es equivalente a 20.
Mientras que si los desplazamos a la derecha:
Espero que les sirva la explicación y ya nos veremos en próximas entradas para continuar nuestro viaje por Python.
Operadores aritméticos:
Veamos los operadores que podemos utilizar con nuestras variables o expresiones numéricas directamente desde el intérprete mediante ejemplos en print así puedan ir viendo los resultados:
Operadores lógicos:
Al igual que lo hicimos para los aritméticos, veamos los operadores lógicos en el intérprete mostrando los resultados de algunos ejemplos:
En caso de no saber álgebra de Bool y/o lógica proposicional, recomiendo visitar las entradas correspondientes para poder sacar el máximo provecho a estos operadores y entender los resultados que nos devuelven.
Operadores relacionales:
Los operadores relacionales utilizados en expresiones devuelven como resultado datos booleanos.
Para los ejemplos del intérprete declararemos al inicio dos variables numéricas y mediante los operadores relacionales devolveremos los resultados booleanos de las expresiones:
Operadores a nivel de bit:
Estos operadores actúan sobre la representación en binario de los dos operandos a los que se aplican.
*Entre estos tenemos el operador & , que sería un and bit a bit, devolviendo 1 si en ese bit ambos números tienen un 1 y 0 en caso contrario.
Veamos un ejemplo:
Expliquemos un poco este resultado para que se entienda, a es el número entero 5, en binario 101 y b es 7, en binario 111. El & compara bit a bit por lo que comparará el primer bit de los dos (1 y 1), el segundo de los dos (0 y 1) y finalmente el tercero de los dos (1 y 1). Estas tres comparaciones tienen como resultado: 1 la primera, 0 la segunda y 1 la tercera. Si juntamos los 3 resultados tenemos 101 que es el entero 5.
*También tenemos el operador | , un or bit a bit. Veamos el ejemplo anterior con este nuevo operador:
Analicemos el resultado: nuevamente tenemos 101 y 111, se evalúa bit a bit de la siguiente manera: (1 ó 1), (0 ó 1) y (1 ó 1) , obteniendo como resultado 111 que equivale a 7 en el sistema de numeración decimal.
* Como variante del or bit a bit, tenemos el xor bit a bit para el cual utilizaremos el operador ^. Este sería un or excluyente si recordamos un poco de lógica proposicional. Vamos al ejemplo:
Esta vez al hacer (1 xor 1), (0 xor 1) y (1 xor 1) obtenemos como resultado 010 que equivale a 2.
* También tenemos el operador ~ que corresponde a un not bit a bit, éste niega invierte los bits del operando. Si lo utilizamos con el a de los ejemplos anteriores:
* Por último tenemos los operadores de desplazamiento << y >> que sirven para desplazar los bits n posiciones a la izquierda o a la derecha respectivamente.
Donde tenemos 101 , si desplazamos esos bits a la izquierda 2 posiciones, debemos agregar 2 ceros al final con lo que tendríamos 10100 que es equivalente a 20.
Mientras que si los desplazamos a la derecha:
Espero que les sirva la explicación y ya nos veremos en próximas entradas para continuar nuestro viaje por Python.
Comentarios
Publicar un comentario