Calcolatore ternario bilanciato
Questo calcolatore ternario bilanciato trasforma un normale intero decimale in una rappresentazione in base tre i cui trit valgono meno uno, zero e più uno, indicati con -, 0 e +.
Esegui gratis nel browser
Decodifica inoltre tale notazione per ricavare nuovamente l’intero. Oltre alla forma canonica, il risultato mostra la scomposizione con segno in potenze di tre, il numero totale di trit, quelli non nulli e la negazione immediata. Lei può quindi studiare il sistema, verificare algoritmi e capire perché le cifre con segno semplificano determinate operazioni aritmetiche e alcune architetture hardware.
Leggere una rappresentazione ternaria bilanciata
Il ternario bilanciato è una notazione posizionale basata sulle potenze di tre, ma ogni posizione può contribuire con -1, 0 o +1 volte il proprio valore posizionale. Questo calcolatore rappresenta i trit con -, 0 e +. Da destra verso sinistra, i valori posizionali sono 3^0, 3^1, 3^2 e così via. La scomposizione visualizzata rende esplicito ogni contributo. Per esempio, un trit positivo nella posizione 3^3 apporta +27, mentre un trit negativo nella posizione 3^2 apporta -9. Sommando tutti i contributi non nulli si ottiene l’intero decimale. Diversamente da un normale valore negativo in base tre, un numero ternario bilanciato negativo non richiede un segno separato: i contributi negativi sono già codificati nei trit. Il convertitore restituisce un’unica forma canonica, elimina gli zeri iniziali ridondanti e rappresenta lo zero con un solo 0. Per decodificare, Lei deve inserire soltanto la sequenza compatta composta da +, 0 e -. Il risultato decimale è sempre un intero sicuro esatto, privo di arrotondamenti in virgola mobile.
Come vengono convertiti gli interi decimali
La codifica usa divisioni ripetute per tre con un resto bilanciato. Un resto ordinario può essere zero, uno o due, ma il ternario bilanciato sostituisce il resto due con -1 e riporta +1 nella posizione successiva, perché 2 equivale a -1 più 3. L’algoritmo emette quindi 0 per resto zero, + per resto uno e - per resto due dopo aver applicato il riporto. La regola funziona con interi positivi e negativi e infine riduce a zero qualsiasi intero sicuro. La decodifica esegue il procedimento inverso da sinistra a destra: moltiplica il valore accumulato per tre e aggiunge il valore del trit corrente. Entrambe le operazioni impiegano internamente aritmetica intera esatta. Il risultato indica anche il numero complessivo di trit e quanti sono diversi da zero. La seconda misura è utile per studiare forme sparse a cifre con segno, perché le posizioni nulle non richiedono contributi. Sono rifiutati valori fuori dall’intervallo sicuro, decimali non validi, frazioni, esponenti, spazi interni e simboli sconosciuti.
Perché i trit con segno possono agevolare l’aritmetica
Il vantaggio più evidente è la negazione: scambi ogni + con - e ogni - con +, lasciando invariato lo zero. Non servono un bit di segno separato né un complemento su una larghezza fissa, quindi il calcolatore restituisce direttamente la rappresentazione negata. Le cifre con segno rendono inoltre simmetriche le quantità positive e negative, facilitando la spiegazione della sottrazione o la progettazione di algoritmi che scelgono una potenza di tre vicina e compensano con un trit negativo. Durante l’addizione possono ancora verificarsi riporti, ma le cifre bilanciate offrono regole locali simmetriche e, in alcuni progetti aritmetici, possono ridurre lunghe propagazioni in una sola direzione. Il conteggio dei trit non nulli evidenzia un’altra idea pratica: la moltiplicazione per una costante può essere espressa come somme e sottrazioni di potenze di tre, ignorando le posizioni zero. Il ternario bilanciato non sostituisce universalmente il binario e non garantisce maggiore velocità su ogni macchina. È uno strumento preciso per lezioni sui sistemi numerici, esperimenti con cifre firmate, esercizi di programmazione e verifiche manuali.
Casi d'uso
Insegnare la notazione posizionale con segno
Mostri come contributi negativi e potenze di tre si combinano senza un carattere di segno separato.
Verificare il codice di conversione
Confronti un’implementazione con risultati deterministici per decimale, trit canonici, scomposizione e negazione.
Esplorare rappresentazioni aritmetiche
Esamini trit non nulli e segni invertiti nello studio di costanti sparse, sottrazione o hardware bilanciato.
Domande frequenti
Quali simboli usa questo calcolatore?
Usa + per più uno, 0 per zero e - per meno uno. Ogni posizione corrisponde a una potenza di tre.
Come si inserisce un numero ternario bilanciato negativo?
Inserisca trit negativi nella rappresentazione. Non vi è un segno iniziale separato; la sequenza compatta contiene solo +, 0 e -.
Perché il resto due diventa un trit negativo?
Perché 2 si può scrivere come -1 più un gruppo di 3 riportato. Il trit corrente diventa - e la posizione seguente aumenta di uno.
Come si esegue la negazione?
Scambi + e - in ogni posizione e mantenga ogni 0. Il campo negated_balanced_ternary mostra il risultato.
Quale intervallo è supportato?
I valori decimali e i risultati decodificati devono restare fra i limiti negativo e positivo degli interi sicuri JavaScript, inclusi.
Quanto costa?
L’esecuzione nel browser è gratuita in questa pagina. Ogni richiesta API costa $0.002 per elemento.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"value": "42",
"direction": "to_balanced_ternary"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.balanced_ternary",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_abs | 9007199254740991 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |