Decodificador de código Gray
Pegue una lectura en código Gray y obtenga el número que representa: 0111 se decodifica como el binario 0101, es decir, 5. Los ceros a la izquierda se conservan, útil para comparar lecturas de ancho fijo de un codificador. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- 0111
- Código Gray
- 0111
- Binario
- 0101
- Entero
- 5
Un decodificador de código Gray convierte una palabra Gray binaria reflejada en el entero no negativo ordinario que representa. Esta herramienta acepta una cadena formada solo por ceros y unos, reconstruye su forma binaria estándar y devuelve el entero exacto junto con ambas cadenas para facilitar la comprobación. Resulta útil al leer posiciones de codificadores rotatorios, validar ejercicios de lógica digital, probar tablas de firmware o estudiar cómo las transiciones Gray de un bit vuelven al conteo normal.
Qué calcula un decodificador de código Gray
El código Gray binario reflejado etiqueta enteros no negativos consecutivos de modo que los valores adyacentes difieren exactamente en un bit. Esa transición única es útil en dispositivos donde varias señales eléctricas no pueden cambiar con total simultaneidad. Una palabra Gray no se interpreta directamente mediante los valores posicionales del binario común.
Para decodificarla, se copia el bit Gray más significativo como primer bit binario. Cada bit binario posterior es el OR exclusivo entre el bit binario ya decodificado y el bit Gray actual. Dicho de otra forma, cada posición binaria expresa la paridad del prefijo Gray que termina allí.
La capacidad aplica ese XOR acumulativo de izquierda a derecha, construye la cadena binaria estándar y la evalúa como entero no negativo. Por ejemplo, el código Gray 0111 se convierte en binario 0101 y, por tanto, en el entero 5. Conserva los ceros iniciales en ambas cadenas, algo práctico para comparar lecturas de hardware de ancho fijo.
Implementa la variante binaria reflejada habitual en codificadores y lógica digital.
Entrada válida y salida exacta
Envíe la palabra Gray en el campo text como cadena no vacía que contenga únicamente 0 y 1. No se admiten espacios, separadores, el prefijo 0b, otros dígitos decimales, signos ni texto explicativo. La validación estricta impide que un carácter accidental altere silenciosamente una posición de hardware.
Gray 0 devuelve binario 0 y entero 0; Gray 1 devuelve binario 1 y entero 1. Entradas iguales siempre generan objetos iguales porque no se usan red, azar, estado almacenado ni reloj.
Uso en hardware, enseñanza y pruebas
Use el formulario del navegador para inspeccionar rápidamente una lectura Gray, demostrar el XOR acumulativo en una clase o revisar un cálculo manual sin crear un programa temporal. En codificadores rotatorios o lineales, conserve la lectura original de ancho fijo y compare el campo binary con el orden de bits documentado por el dispositivo, pues la cadena se interpreta con el bit más significativo primero. En pruebas automáticas, compruebe los tres campos si importa el ancho, o solo integer si basta la posición.
Incluya casos con todos ceros, un único uno, ceros iniciales, el máximo previsto y cadenas mal formadas. El decodificador no corrige cableado invertido, no infiere el orden, no elimina prefijos ni adivina si una cadena es Gray o binaria común. Su contrato es deliberadamente preciso: validar, decodificar exactamente y devolver un resultado estable para navegador, servidor e integración continua.
Qué puede hacer con ella
Decodificar la posición de un codificador
Convierta una lectura Gray de ancho fijo de un codificador rotatorio o lineal en la posición no negativa usada por la lógica de su aplicación.
Comprobar ejercicios de lógica digital
Muestre la palabra binaria reconstruida y el entero para verificar cada fase del cálculo de decodificación mediante XOR acumulativo.
Preguntas frecuentes
¿Qué clase de código Gray decodifica?
Decodifica el código Gray binario reflejado estándar mediante XOR acumulativo desde el bit más significativo hasta el menos significativo.
¿Qué entrada se acepta?
Los espacios, prefijos, signos y otros dígitos son inválidos.
¿Por qué se limita la entrada a 53 bits?
Una entrada más ancha puede superar el intervalo seguro y se rechaza para evitar un redondeo silencioso.
¿Cómo paso a mano de código Gray a binario?
Copie el primer bit tal cual. Para cada bit siguiente, compare el bit Gray con el último bit binario escrito: anote 1 si son distintos y 0 si coinciden. Así 0111 se convierte en 0101.
¿Por qué los codificadores rotativos usan código Gray?
Porque dos posiciones vecinas difieren en un solo bit, algo importante en aparatos donde varias señales eléctricas no siempre cambian en el mismo instante. Al decodificar, cada lectura vuelve a ser una posición numérica normal.
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/numth/gray-code-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"0111"}'const res = await fetch("https://api.kit.forhosting.com/numth/gray-code-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "0111"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/gray-code-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "0111"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/gray-code-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"0111"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"0111"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/gray-code-decode", 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
{
"text": "0111"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.gray_code_decode",
"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.
Límites
max_chars | 53 |
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
Los caracteres no válidos se rechazan claramente, y cada solicitud válida usa el mismo algoritmo determinista en el navegador y en la API.
Entrada válida y salida exacta
También se aceptan los alias gray, gray_code y bits cuando su cliente ya emplea uno de esos nombres. El contrato actual admite hasta 53 bits para ofrecer un entero exacto: los números JavaScript y JSON solo representan enteros con precisión dentro de su intervalo seguro, por lo que un resultado superior se rechaza en vez de redondearse. La respuesta correcta incluye gray_code con el ancho enviado, binary con la palabra binaria reconstruida e integer con el número JSON no negativo. Una entrada inválida genera invalid_input sin resultados parciales engañosos.
Uso en hardware, enseñanza y pruebas
Use la API cuando herramientas de firmware, bancos de pruebas, plataformas educativas o servicios de importación necesiten repetir la misma operación estable. Cada elemento correcto mediante API cuesta $0.002; la ejecución en navegador sirve para comprobaciones interactivas.
Casos de integración
Crear fixtures de prueba deterministas
Genere resultados estables de Gray a entero para tablas de firmware, simuladores, analizadores de dispositivos y aserciones de integración continua.
Preguntas técnicas
¿Se conservan los ceros iniciales?
Sí. Los campos gray_code y binary conservan el ancho enviado, mientras que integer devuelve el valor numérico correspondiente.
¿Cuánto cuesta la API?
Cada elemento correcto mediante API cuesta $0.002. La ejecución interactiva en el navegador está disponible para comprobaciones rápidas.