Calculadora ternaria equilibrada
Esta calculadora de ternario equilibrado convierte un entero decimal común en una representación de base tres cuyos trits valen menos uno, cero y más uno, escritos como -, 0 y +.
Ejecutar — gratis
También descodifica esa notación para recuperar el entero. Junto con la forma canónica, el resultado muestra la descomposición en potencias de tres con signo, el número total de trits, los trits no nulos y la negación inmediata. Así puede aprender el sistema, comprobar algoritmos y entender por qué los dígitos con signo simplifican ciertas operaciones aritméticas y diseños de hardware.
Cómo leer una representación ternaria equilibrada
El ternario equilibrado es una notación posicional basada en potencias de tres, pero cada posición puede aportar -1, 0 o +1 multiplicado por su valor posicional. Esta calculadora representa esos trits mediante -, 0 y +. De derecha a izquierda, los valores posicionales son 3^0, 3^1, 3^2 y así sucesivamente. La descomposición mostrada hace explícita cada contribución. Por ejemplo, un trit positivo en la posición 3^3 aporta +27, mientras que un trit negativo en 3^2 aporta -9. Sume todas las contribuciones no nulas para recuperar el entero decimal. A diferencia de un valor negativo ordinario en base tres, un número ternario equilibrado negativo no necesita un signo separado: las contribuciones negativas ya están codificadas en sus trits. El conversor produce una única forma canónica, elimina ceros iniciales redundantes y representa el cero mediante un solo 0. Para descodificar, introduzca únicamente la secuencia compacta formada por +, 0 y -. El resultado decimal siempre es un entero seguro exacto, sin redondeo de coma flotante.
Cómo se convierten los enteros decimales
La codificación aplica divisiones sucesivas entre tres con un resto equilibrado. Un resto convencional puede ser cero, uno o dos, pero el ternario equilibrado sustituye el resto dos por -1 y lleva +1 a la posición siguiente, porque 2 equivale a -1 más 3. Por tanto, el algoritmo emite 0 para el resto cero, + para el resto uno y - para el resto dos después de aplicar el acarreo. La regla funciona con enteros positivos y negativos y acaba reduciendo cualquier entero seguro a cero. La descodificación recorre el proceso inverso de izquierda a derecha: multiplica el valor acumulado por tres y suma el valor del trit actual. Ambas operaciones emplean aritmética entera exacta internamente. El resultado indica además el número total de trits y cuántos no son cero. Esta segunda medida resulta útil al estudiar formas dispersas con dígitos firmados, porque las posiciones nulas no aportan ningún término. Se rechazan los valores fuera del intervalo seguro, así como decimales mal formados, fracciones, exponentes, espacios internos o símbolos desconocidos.
Por qué los trits con signo pueden simplificar la aritmética
La ventaja más visible es la negación: intercambie cada + por - y cada - por +, dejando el cero sin cambios. No existe un bit de signo independiente ni una operación de complemento sobre una anchura fija, por lo que la calculadora devuelve directamente la representación negada. Los dígitos con signo también tratan simétricamente las cantidades positivas y negativas, algo útil para explicar restas o diseñar algoritmos que eligen una potencia de tres cercana y la compensan con un trit negativo. Todavía pueden producirse acarreos durante la suma, pero los dígitos equilibrados ofrecen reglas locales simétricas y, en algunos diseños aritméticos, reducen largas propagaciones en una sola dirección. El recuento de trits no nulos destaca otra idea práctica: multiplicar por una constante puede expresarse como sumas y restas de potencias de tres, ignorando las posiciones cero. El ternario equilibrado no sustituye universalmente al binario ni garantiza mayor velocidad en todo equipo. Esta herramienta sirve para clases de sistemas numéricos, experimentos con dígitos firmados, ejercicios de programación y comprobaciones manuales precisas.
Qué puede hacer con ella
Enseñar notación posicional con signo
Muestre cómo se combinan contribuciones negativas y potencias de tres sin emplear un signo independiente.
Comprobar código de conversión
Compare una implementación con resultados deterministas de decimal, trits canónicos, descomposición y negación.
Explorar representaciones aritméticas
Examine trits no nulos y signos intercambiados al estudiar constantes dispersas, restas o hardware equilibrado.
Preguntas frecuentes
¿Qué símbolos utiliza esta calculadora?
Utiliza + para más uno, 0 para cero y - para menos uno. Cada posición corresponde a una potencia de tres.
¿Cómo se introduce un número ternario equilibrado negativo?
Use trits negativos dentro de la representación. No hay un signo inicial separado; la secuencia compacta solo contiene +, 0 y -.
¿Por qué un resto de dos se convierte en un trit negativo?
Porque 2 puede escribirse como -1 más un grupo de 3 que se lleva. El trit actual pasa a ser - y la posición siguiente aumenta en uno.
¿Cómo se realiza la negación?
Intercambie + y - en todas las posiciones y conserve cada 0. El campo negated_balanced_ternary muestra el resultado.
¿Qué intervalo se admite?
Los valores decimales y resultados descodificados deben estar entre los límites negativo y positivo de enteros seguros de JavaScript, ambos incluidos.
¿Cuánto cuesta?
Puede ejecutarla gratis en su navegador desde esta página. Cada solicitud de API cuesta $0.002 por elemento.
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/balanced-ternary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"42","direction":"to_balanced_ternary"}'const res = await fetch("https://api.kit.forhosting.com/dev/balanced-ternary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "42",
"direction": "to_balanced_ternary"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/balanced-ternary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "42",
"direction": "to_balanced_ternary"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/balanced-ternary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"42","direction":"to_balanced_ternary"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"42","direction":"to_balanced_ternary"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/balanced-ternary", 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",
"direction": "to_balanced_ternary"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.balanced_ternary",
"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_abs | 9007199254740991 |
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. |