Operaciones con bits
Todos los números en la memoria de la computadora se almacenan en forma binaria, es decir como una secuencia de 0 y 1.
Para almacenar números en la memoria de la computadora, se utiliza un número finito de dígitos. Debido a esto, los números en una computadora tienen un rango limitado y los resultados de los cálculos pueden ser inexactos.
Un número entero se puede almacenar en 8, 16, 32 o 64 bits de memoria. Cada bit adicional amplía el rango de valores posibles en 2.
Las operaciones con números positivos y negativos se realizan en el procesador utilizando los mismos algoritmos.
Con la ayuda de operaciones lógicas bit a bit, puede controlar bits individuales de los registros del procesador y dispositivos externos.
Operación Python |
Destino |
a & b |
Bitbit Y para a y b |
a | b |
Bitbit OR para a y b |
a ^ b |
X OR para a y b |
~a |
Inversión de bits para a |
un << b |
Desplazamiento bit a bit a la izquierda de a a b |
a >> b |
Desplazamiento bit a bit a la derecha de a a b |
Operación Y
Con la operación "Y
" puede restablecer (poner a cero) bits para los que la máscara es 0.
Máscara – una constante que define el alcance de la operación lógica en los bits de un número de varios bits.
D
- datos, M
- máscara
Operación O
La operación "OR
" se puede utilizar para escribir un 1 en los bits para los que la máscara es 1.
Operación exclusivo O
¡Usando la operación "XOR
" puedes invertir bits para los cuales la máscara es 1!
Desplazamiento a la izquierda
Un desplazamiento a la izquierda de 1
bit lógico (bit a bit) duplica un entero positivo.
Desplazamiento a la derecha
Booleano (bit a bit) .desplazar a la derecha 1
divide un entero positivo por 2.
Dado que un desplazamiento a la derecha establece el bit de signo en las posiciones vacantes, el signo de x
se puede determinar desplazando a la derecha toda la longitud de la variable.
Problem
Sea el número
x
. Determine el signo del número.
Ejemplos
# |
Entrada |
Salida |
1 |
10 |
1 |
2 |
-10 |
-1 |
3 |
0 |
0 |
Dentro de una función, sangrar 4 espacios.
Запрещенные операторы: while;for