Conectar vía MCP →

Ingresar cálculo

Fórmula

Publicidad

Resultados

Resultado desplazado
64
valor decimal
Número de entrada 16
Cantidad de desplazamiento (bits) 2

¿Qué es un desplazamiento de bits?

Un desplazamiento de bits mueve los dígitos binarios de un número entero hacia la izquierda o hacia la derecha un número determinado de posiciones. Es una operación esencial en programación, optimización de bajo nivel, gráficos, funciones hash y sistemas embebidos. Un desplazamiento a la izquierda (n << k) empuja los bits hacia el extremo más significativo y rellena con ceros, mientras que un desplazamiento a la derecha (n >> k) los lleva hacia el extremo menos significativo.

Fila de 8 casillas de dígitos binarios con flechas que muestran los bits moviéndose a izquierda y derecha
Un desplazamiento de bits mueve cada bit un número fijo de posiciones a la izquierda o a la derecha.

Cómo usar esta calculadora

Introduce el entero n, la cantidad de desplazamiento k (en bits) y elige la dirección. La calculadora te devuelve el valor decimal resultante. Esta herramienta trabaja con aritmética de enteros con signo de 64 bits, igual que el comportamiento de la mayoría de los lenguajes de programación.

La fórmula explicada

Cada desplazamiento de una posición a la izquierda duplica el número, así que desplazar k posiciones a la izquierda equivale a multiplicar por \(2^{k}\):

$$\text{Result} = \text{Number (n)} \ll \text{Shift (k)} = n \times 2^{k}$$

Cada desplazamiento de una posición a la derecha reduce el número a la mitad con truncamiento, de modo que un desplazamiento de k posiciones a la derecha realiza una división entera por \(2^{k}\):

$$\text{Result} = \text{Number (n)} \gg \text{Shift (k)} = \left\lfloor \frac{n}{2^{k}} \right\rfloor$$

Por eso los desplazamientos son mucho más baratos para el hardware que multiplicar o dividir.

El desplazamiento a la izquierda de una posición muestra los bits moviéndose a la izquierda con un cero rellenando a la derecha; el valor se duplica
Cada desplazamiento a la izquierda de una posición multiplica el valor por dos; un desplazamiento a la derecha lo divide a la mitad.

Ejemplo resuelto

Tomemos n = 16 y desplacemos 2 posiciones a la izquierda (k = 2). En binario, 16 es 10000. Al desplazar dos veces a la izquierda se añaden dos ceros: 1000000, que equivale a 64. Matemáticamente, \(16 \times 2^{2} = 16 \times 4 = 64\). En sentido contrario, \(64 \gg 2 = \left\lfloor 64 / 4 \right\rfloor = 16\) recupera el valor original.

Tabla de referencia de potencias de dos

Un desplazamiento a la izquierda por \(k\) multiplica un número por \(2^k\); un desplazamiento a la derecha por \(k\) divide entre \(2^k\) (descartando el resto para enteros). Usa esta tabla para leer instantáneamente el multiplicador o divisor para una cantidad de desplazamiento dada.

Desplazamiento \(k\) \(2^k\) (decimal) Significado de \(\ll k\) / \(\gg k\)
0 1 sin cambio
1 2 \(\times 2\) / \(\div 2\)
2 4 \(\times 4\) / \(\div 4\)
3 8 \(\times 8\) / \(\div 8\)
4 16 \(\times 16\)
5 32 \(\times 32\)
6 64 \(\times 64\)
7 128 \(\times 128\)
8 256 \(\times 256\) (1 byte)
9 512 \(\times 512\)
10 1,024 \(\times 1024\) (1 KiB)
11 2,048 \(\times 2048\)
12 4,096 \(\times 4096\)
13 8,192 \(\times 8192\)
14 16,384 \(\times 16384\)
15 32,768 \(\times 32768\)
16 65,536 \(\times 65536\) (2 bytes)
17 131,072
18 262,144
19 524,288
20 1,048,576 \(\times\) 1 MiB
32 4,294,967,296 límite de 32 bits
63 9,223,372,036,854,775,808 bit superior de un entero con signo de 64 bits

Preguntas frecuentes

¿Puede un desplazamiento a la izquierda perder datos? Sí: los bits que se desplazan más allá del ancho del entero se descartan (desbordamiento). Dentro de los 64 bits, esta calculadora conserva el valor.

¿Qué pasa con los números negativos en un desplazamiento a la derecha? Esta calculadora aplica un desplazamiento aritmético (con signo) a la derecha, por lo que se conserva el bit de signo y los números negativos siguen siendo negativos.

¿Por qué usar desplazamientos en lugar de multiplicar o dividir? Los desplazamientos de bits son operaciones de un solo ciclo en la mayoría de las CPU, lo que los convierte en una forma rapidísima de multiplicar o dividir por potencias de dos.

Última actualización: