Desplazamiento aritmético a la derecha de enteros
Esta calculadora de desplazamiento aritmético a la derecha mueve todos los bits de un entero con signo y copia el bit más significativo en las posiciones libres de la izquierda.
Ejecutar — gratis
Elija una anchura, introduzca un entero decimal, hexadecimal o binario con signo e indique el desplazamiento. El resultado muestra valores decimales exactos y patrones binarios ajustados a la anchura, sin depender del tamaño entero implícito de un lenguaje.
Elija la anchura con signo antes de desplazar
Un desplazamiento aritmético a la derecha solo queda definido cuando se conoce la anchura. Los mismos bits pueden representar un valor positivo con una anchura y uno negativo con otra, porque el bit más significativo actúa como signo en complemento a dos. Elija entre 2 y 1024 bits e introduzca un valor dentro del intervalo correspondiente. La calculadora rechaza valores fuera de rango en vez de truncarlos. Puede usar decimal para números negativos o los prefijos 0x y 0b para comparar registros y campos binarios. El patrón de entrada se completa hasta la anchura elegida para que usted vea cada bit.
Comprenda la extensión de signo
El desplazamiento lógico inserta ceros por la izquierda; el aritmético repite el bit de signo: cero para valores no negativos y uno para valores negativos. Esta extensión conserva el signo mientras los bits avanzan hacia la derecha. En valores negativos equivale a dividir por una potencia de 2 redondeando hacia menos infinito: por ejemplo, menos cinco desplazado una posición produce menos tres. La salida incluye el resultado decimal, el patrón binario completo y `sign_bit`, que identifica el bit original replicado.
Gestione desplazamientos grandes y enteros exactos
Un desplazamiento de cero no cambia el valor. Si el número de posiciones alcanza o supera la anchura, solo queda la extensión de signo: cero para un valor no negativo y menos uno para uno negativo. Este comportamiento evita el enmascaramiento de conteos propio de algunos procesadores. El cálculo usa enteros de precisión arbitraria y devuelve los valores decimales como cadenas, pues JSON no representa exactamente todos los enteros de 64, 128 o 1024 bits. Procese esas cadenas con un tipo entero exacto.
Qué puede hacer con ella
Verificar instrucciones con signo
Compare el resultado de un emulador, compilador o procesador con una operación de anchura explícita.
Depurar formatos binarios
Compruebe cómo se comporta un campo con signo al aplicar operaciones que conservan el signo.
Enseñar complemento a dos
Muestre los patrones completos junto con sus interpretaciones decimales exactas.
Preguntas frecuentes
¿Qué hace un desplazamiento aritmético a la derecha?
Mueve los bits a la derecha y rellena las posiciones altas con copias del bit de signo original.
¿En qué se diferencia del desplazamiento lógico?
El lógico siempre inserta ceros; el aritmético inserta el signo y conserva así los valores negativos.
¿Qué formatos de entrada admite?
Use texto decimal con signo o los prefijos 0x para hexadecimal y 0b para binario. Se admite un signo inicial.
¿Qué ocurre si el desplazamiento iguala o supera la anchura?
El resultado es cero para valores no negativos y menos uno para valores negativos.
¿Por qué los valores decimales se devuelven como cadenas?
Las cadenas conservan enteros exactos más allá del intervalo numérico seguro de JSON.
¿Cuánto cuesta una solicitud de API?
Cada solicitud de API cuesta $0.002. La versión del navegador usa el mismo cálculo determinista.
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/dev/arithmetic-shift-right \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"-42","width":8,"shift":3}'const res = await fetch("https://api.kit.forhosting.com/dev/arithmetic-shift-right", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "-42",
"width": 8,
"shift": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/arithmetic-shift-right",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "-42",
"width": 8,
"shift": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/arithmetic-shift-right", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"-42","width":8,"shift":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"-42","width":8,"shift":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/arithmetic-shift-right", 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
{
"value": "-42",
"width": 8,
"shift": 3
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.arithmetic_shift_right",
"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. |