Calculadora bitwise
60 AND 13 da 12, 60 OR 13 da 61 y 60 XOR 13 da 49. Combine dos enteros de 32 bits con AND, OR, XOR o un desplazamiento y obtenga exactamente lo que calcularía C, Java o JavaScript, con ambos números junto al resultado. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- A
- 60
- B
- 13
- Op
- Xor
- Resultado
- 49
Sigue la misma semántica de complemento a dos que usan C, Java y JavaScript, de modo que el número que recibe coincide con lo que calcularía su propio código, sin redondeos de punto flotante ni sorpresas. Ambos operandos se devuelven junto al resultado, y cualquier valor que no sea un entero genuino de 32 bits se rechaza con un error claro y sin coste, en lugar de truncarse en silencio.
Qué hace realmente una operación bit a bit
Una calculadora bitwise trabaja sobre la representación binaria de los enteros en lugar de su valor decimal. Cuando calcula 60 AND 13, la máquina alinea los bits de ambos números — 111100 y 001101 — y conserva un 1 solo donde ambos operandos tienen un 1, produciendo 12. OR conserva un 1 donde cualquiera de los dos lo tenga, dando 61, y XOR conserva un 1 solo donde los bits difieren, dando 49.
Estas tres operaciones son la base de los campos de flags, las máscaras de permisos, las subredes, las funciones hash y los formatos de compresión. Como el resultado depende únicamente de los dos operandos, un cálculo bit a bit es completamente determinista: el mismo par de enteros produce siempre la misma respuesta, en cualquier máquina y en cualquier lenguaje que use enteros de 32 bits en complemento a dos.
Desplazamientos, bit de signo y semántica de 32 bits
Los desplazamientos mueven todos los bits del primer operando a la izquierda o a la derecha según la cantidad indicada en el segundo. Un desplazamiento a la izquierda de n posiciones multiplica por dos elevado a n, descartando los bits que se salen por arriba; es el camino rápido clásico para las potencias de dos pequeñas. El desplazamiento a la derecha tiene dos variantes, y la diferencia importa.
El desplazamiento aritmético, shr, copia el bit de signo en las posiciones liberadas, así que un número negativo sigue siendo negativo: menos ocho desplazado una posición a la derecha es menos cuatro. El desplazamiento lógico, ushr, inserta ceros en su lugar, lo que reinterpreta el valor como sin signo y es lo que usted quiere al extraer campos de bits de una palabra empaquetada.
Siguiendo la convención de JavaScript y Java, solo se usan los cinco bits bajos de la cantidad de desplazamiento, de modo que desplazar 33 equivale a desplazar 1. Ambos operandos se validan como enteros genuinos de 32 bits antes de tocar un solo bit, y cualquier entrada fuera de rango o no entera se rechaza en lugar de truncarse sin aviso.
Cómo usarla en la práctica
La solicitud tiene tres campos: dos enteros, a y b, y la operación op, que puede ser and, or, xor, shl, shr o ushr. La respuesta repite la operación y ambos operandos junto al resultado entero, de modo que puede guardarla o registrarla sin reconstruir la llamada. No hay estado entre solicitudes y nada se almacena, así que las mismas entradas devuelven siempre el mismo resultado y sus datos nunca permanecen en un servidor.
Qué puede hacer con ella
Decodificar flags empaquetados y máscaras de permisos
Compruebe si un bit está activo, limpie un flag o combine bits de permisos de un campo de roles con AND, OR y XOR sin escribir un script improvisado.
Verificar la aritmética de desplazamientos entre lenguajes
Confirme qué produce un desplazamiento a la derecha con signo o uno lógico antes de portar código de bajo nivel, para que un error de signo nunca llegue a producción.
Preguntas frecuentes
¿Cuánto cuesta?
Además, puede ejecutarlo gratis en su navegador en esta página con exactamente el mismo código.
¿Qué operaciones están disponibles?
AND, OR, XOR, desplazamiento a la izquierda (shl), desplazamiento aritmético a la derecha (shr) y desplazamiento lógico a la derecha (ushr).
¿Qué rangos de entrada se aceptan?
Ambos operandos deben ser enteros dentro del rango con signo de 32 bits, de -2147483648 a 2147483647.
¿Cómo se tratan los números negativos en los desplazamientos?
shr copia el bit de signo, así que los valores negativos siguen siendo negativos; ushr rellena con ceros y trata el valor como sin signo. Ambos siguen la semántica de complemento a dos de 32 bits.
¿Qué ocurre si desplazo más de 31 posiciones?
Solo se usan los cinco bits bajos de la cantidad de desplazamiento, igual que en JavaScript y Java: desplazar 33 es lo mismo que desplazar 1.
¿Se almacena algo?
No. Cada solicitud se calcula y se descarta; no hay estado entre llamadas.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/math/bitwise \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":60,"b":13}'const res = await fetch("https://api.kit.forhosting.com/math/bitwise", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 60,
"b": 13
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/bitwise",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 60,
"b": 13
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/bitwise", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":60,"b":13}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":60,"b":13}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/bitwise", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"a": 60,
"b": 13
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.bitwise",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
La API de la calculadora bitwise aplica una operación bit a bit — AND, OR, XOR, desplazamiento a la izquierda, desplazamiento aritmético a la derecha o desplazamiento lógico a la derecha — sobre dos enteros de 32 bits y devuelve el resultado entero exacto.
Qué hace realmente una operación bit a bit
Ese es exactamente el contrato de este endpoint: usted envía dos enteros y el nombre de una operación, y recibe el mismo entero que calcularía su código, con ambos operandos repetidos para que la respuesta sea autodescriptiva en un registro o en una auditoría.
Cómo usar el endpoint en la práctica
El mismo código que se ejecuta en nuestro edge se ejecuta gratis en su navegador en esta página, lo que significa que puede prototipar una máscara o comprobar un desplazamiento a mano y pagar solo cuando automatice la llamada: $0.002 por solicitud vía API. Si falta algún operando, no es un entero o está fuera del rango con signo de 32 bits, el endpoint responde con un error invalid_input y la llamada no se cobra, lo que hace seguro conectarlo directamente a un pipeline que ingiere datos no confiables.
Casos de integración
Enseñar y depurar representaciones binarias
Muestre a estudiantes o colegas exactamente cómo se combinan dos enteros bit a bit, con el mismo resultado en el navegador y en la API.