Convertire numeri tra basi 2–36 con verifica delle cifre
Il numero esadecimale -deadBEEF diventa -1PS9WXB in base 36. Si inserisce un numero intero, si indica la base in cui è scritto e si sceglie qualsiasi base di destinazione da 2 a 36; i numeri lunghi restano esatti, senza arrotondamenti. Gratis nel browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Numero
- -deadBEEF
- Base di origine
- 16
- Base di destinazione
- 36
- Risultato
- -1PS9WXB
La conversione tra basi riscrive un numero intero da un sistema di numerazione posizionale a un altro senza modificarne il valore. Inserisca il numero come testo, indichi la base di origine e scelga una base di destinazione da 2 a 36. Il convertitore controlla ogni cifra prima del calcolo, accetta lettere maiuscole o minuscole, conserva il segno negativo quando è significativo e restituisce un risultato canonico in maiuscolo. L’aritmetica a precisione arbitraria mantiene esatti gli input lunghi invece di arrotondarli ai limiti di un normale numero JavaScript. L’operazione è deterministica, non usa servizi di rete e segnala numeri malformati o basi non ammesse come errori di input.
Descriva correttamente il numero originale
Parta dalla base nella quale è già scritto il numero fornito. La base determina sia i simboli disponibili sia il valore posizionale assegnato a ogni posizione. La base 2 ammette soltanto 0 e 1; la base 8 accetta le cifre da 0 a 7; la base 10 usa quelle da 0 a 9; la base 16 aggiunge le lettere da A a F.
La medesima convenzione prosegue fino alla base 36, nella quale Z vale trentacinque. Il numero può avere spazi circostanti e un solo segno più o meno iniziale, ma il corpo deve contenere almeno una cifra. Non aggiunga prefissi di programmazione come 0x o 0b, separatori, virgole, punti decimali, esponenti o unità.
Tali caratteri non appartengono all’alfabeto degli interi e vengono rifiutati. Le lettere non distinguono tra maiuscole e minuscole, quindi ff e FF rappresentano lo stesso valore esadecimale. La verifica è legata alla base dichiarata: un carattere può appartenere all’alfabeto generale ma risultare illegale in una base specifica.
Per esempio, 19 è valido in decimale ma non in ottale, perché quest’ultimo non dispone della cifra nove.
Comprenda il procedimento di conversione esatta
Il convertitore valuta anzitutto la stringa di origine mediante la normale regola posizionale. Procedendo da sinistra a destra, moltiplica il valore accumulato per la base di origine e aggiunge il valore della cifra successiva. Il metodo vale allo stesso modo per il sistema binario, decimale, esadecimale e per ogni base supportata compresa fra questi.
Dopo aver recuperato l’intero esatto, il convertitore ne esprime il valore nella base di destinazione tramite divisioni ripetute. Ogni divisione produce un resto, il resto seleziona una cifra di destinazione e l’inversione dei resti raccolti genera la rappresentazione conclusiva. L’implementazione usa interi a precisione arbitraria per tutto il calcolo.
Evita così l’arrotondamento che può verificarsi quando un identificatore lungo o una sequenza di bit supera l’intervallo sicuro dei numeri in virgola mobile. Le lettere dell’output sono sempre maiuscole, gli zeri iniziali superflui scompaiono e qualsiasi rappresentazione dello zero diventa esattamente 0. Il segno meno viene ripristinato soltanto se il valore matematico è diverso da zero, pertanto un input come -000 non crea uno zero negativo distinto.
Non intervengono scelte casuali, orari, regole locali, stato memorizzato, richieste remote o modelli. Gli stessi tre campi producono sempre la stessa stringa, byte per byte.
Convalidi e utilizzi in sicurezza la stringa restituita
Una risposta riuscita contiene result come stringa. Mantenga il risultato come testo, poiché le cifre possono comprendere lettere e un intero molto grande potrebbe non essere rappresentabile esattamente dal tipo numerico del linguaggio chiamante. La consideri un problema di convalida: corregga il campo indicato invece di ripetere gli stessi dati.
Gli input sono limitati a 4,096 cifre per rendere prevedibili calcolo e memoria. Per un controllo indipendente, converta nuovamente il risultato scambiando le basi; la forma canonica può differire per zeri iniziali o maiuscole, ma il valore matematico deve coincidere.
Casi d'uso
Esaminare valori di basso livello
Passi registri, maschere di bit, permessi dei file e campi di protocollo tra le viste binaria, ottale, decimale ed esadecimale.
Abbreviare identificatori numerici
Esprima un lungo identificatore decimale in base 36 come stringa alfanumerica compatta, mantenendo reversibile la conversione.
Domande frequenti
Quali basi di origine e destinazione sono supportate?
Ogni base deve essere un intero compreso fra 2 e 36, estremi inclusi.
Come si scrivono i valori delle cifre superiori a nove?
Le lettere da A a Z rappresentano i valori da dieci a trentacinque. L’input ignora le maiuscole, mentre l’output le utilizza.
Il convertitore gestisce interi negativi o molto lunghi?
Sì. È ammesso un segno iniziale e la precisione arbitraria conserva esatti input fino a 4,096 cifre.
Si può scrivere un prefisso come 0x o 0b?
No. Basta scegliere la base di origine e scrivere solo le cifre. Prefissi, virgole, spazi tra le cifre e punti decimali non fanno parte del numero e vengono rifiutati invece di essere indovinati.
Perché il numero viene rifiutato in base 8?
Ogni cifra deve essere minore della base. 19 è valido in decimale ma non in ottale, perché l'ottale non ha una cifra che valga nove. Conviene verificare che la base di origine corrisponda a come è scritto il numero.
Strumenti correlati
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/dev2/base-convert-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"101101","source_base":2,"target_base":16}'const res = await fetch("https://api.kit.forhosting.com/dev2/base-convert-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "101101",
"source_base": 2,
"target_base": 16
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/base-convert-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "101101",
"source_base": 2,
"target_base": 16
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/base-convert-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"101101","source_base":2,"target_base":16}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"101101","source_base":2,"target_base":16}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/base-convert-number", 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
{
"number": "101101",
"source_base": 2,
"target_base": 16
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.base_convert_number",
"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_digits | 4096 |
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. |
Note tecniche
Descriva correttamente il numero originale
Inserisca la rappresentazione originale nel campo number e la relativa base in source_base.
Convalidi e utilizzi in sicurezza la stringa restituita
Una base mancante, frazionaria o fuori intervallo, un valore number non testuale, un corpo vuoto, un segno di punteggiatura fra le cifre o una cifra il cui valore raggiunge o supera la base di origine determina una risposta invalid_input. Le conversioni singole funzionano nel browser, mentre le richieste API automatizzate hanno il prezzo pubblicato di $0.002 ciascuna.
Casi di integrazione
Creare fixture deterministiche
Produca stringhe attese esatte per parser, esercizi, controlli di migrazione e test di regressione tra linguaggi.
Domande tecniche
Che cosa accade se una cifra non appartiene alla base di origine?
La richiesta non riesce con invalid_input e identifica la cifra errata e la base di origine.
Quanto costa una conversione tramite API?
Il prezzo dell’API è $0.002 per richiesta. Può anche eseguire singole conversioni nel browser.