Convertitore di base
Riscriva un numero da una base a un'altra, dalla base 2 alla base 36: 1010 in binario è 10 in decimale. I valori grandi restano esatti fino all'ultima cifra e il segno meno iniziale viene mantenuto. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Valore
- 1010
- Base di origine
- 2
- Base di destinazione
- 10
- Risultato
- 10
Converte una stringa di cifre da una radice all'altra tra base 2 e base 36 usando interi di precisione arbitraria, conservando un eventuale segno meno iniziale.
Che cosa significa davvero cambiare base
Una base indica quante cifre diverse usa un sistema di numerazione prima di passare a una nuova posizione. Il decimale ne usa dieci, il binario due, l'esadecimale sedici e la base 36 le dieci cifre più le ventisei lettere. La quantità non cambia mai; cambia solo il modo di scriverla. Per questo 1010 in binario e 10 in decimale sono lo stesso numero. Il convertitore legge le sue cifre nella base di partenza, calcola il numero intero che rappresentano e lo riscrive nella base di arrivo. Che si tratti di binario verso esadecimale, di esadecimale verso decimale o di decimale verso base 36, il procedimento è sempre lo stesso.
Gli errori che questo convertitore evita
Molti strumenti comuni perdono precisione senza avvisare quando un numero supera 2^53, e le ultime cifre di un identificativo o di un'impronta lunga risultano sbagliate. Qui ogni valore viene trattato come un intero esatto fino a 200 caratteri, quindi nulla viene arrotondato. Una cifra che non esiste nella base di partenza, come un 2 in binario o una G in esadecimale, viene segnalata invece di essere ignorata. Prefissi come 0x non sono accettati, così la base è sempre quella che ha scelto lei. Sono ammessi solo numeri interi: una virgola decimale o una frazione non vengono convertite.
Lo stesso risultato esatto a ogni conversione
Poiché l'aritmetica opera su BigInt, non c'è la perdita silenziosa di precisione che parseInt e Number.toString(radix) possono subire in prossimità e oltre 2^53, il che rende questo strumento sicuro per hash di grandi dimensioni, identificatori, valori di colore o maschere di bit. Gli usi comuni includono le conversioni da binario a esadecimale e da esadecimale a decimale, la codifica di ID in un compatto alfabeto in base 36 e l'ispezione di come appare un numero nelle varie radici.
Casi d'uso
Ispezione di numeri per sviluppatori
Converta tra binario, ottale, decimale ed esadecimale durante il debug di maschere di bit, flag o valori di colore.
ID compatti in base 36
Codifichi grandi identificatori decimali in una stringa più breve in base 36, o li decodifichi di nuovo esattamente con gli interi di grandi dimensioni.
Domande frequenti
Gestisce numeri molto grandi?
Sì. I valori vengono analizzati come BigInt, quindi la conversione è esatta senza perdita in virgola mobile anche oltre 2^53.
Sono ammessi numeri negativi e lettere?
Un segno meno iniziale viene conservato, le lettere A-Z fungono da cifre superiori a 9, e l'input viene portato in maiuscolo così 'ff' equivale a 'FF'.
Come converto da binario a esadecimale?
Scelga 2 come base di partenza e 16 come base di arrivo, poi scriva le cifre binarie. Gli stessi passaggi valgono per qualsiasi coppia di basi tra 2 e 36, per esempio da esadecimale a decimale.
Posso scrivere 0x o 0b davanti al numero?
No. Questi prefissi vengono rifiutati perché la base si sceglie a parte e non si ricava dal numero. Tolga lo 0x o lo 0b e scelga la base 16 o la base 2.
Quali cifre usa la base 36?
Le cifre da 0 a 9 seguite dalle lettere dalla A alla Z, quindi la base 16 arriva fino alla F e la base 36 usa l'intero alfabeto. Maiuscole e minuscole valgono come la stessa cifra.
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/dev/number-base \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"FF","from_base":16,"to_base":10}'const res = await fetch("https://api.kit.forhosting.com/dev/number-base", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "FF",
"from_base": 16,
"to_base": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/number-base",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "FF",
"from_base": 16,
"to_base": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/number-base", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"FF","from_base":16,"to_base":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"FF","from_base":16,"to_base":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/number-base", 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": "FF",
"from_base": 16,
"to_base": 10
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.number_base",
"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_value_chars | 200 |
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
Conversione di radice con interi di grandi dimensioni
Poiché il valore è mantenuto come BigInt anziché come numero JavaScript, le conversioni sono esatte per grandezze arbitrariamente elevate senza perdita in virgola mobile. dev.number_base analizza value come stringa di cifre in from_base, la accumula in un BigInt, poi ricodifica quell'intero in to_base. Sia from_base sia to_base sono interi nell'intervallo da 2 a 36; le cifre usano 0-9 seguiti da A-Z, quindi la base 16 usa 0-F e la base 36 usa l'intero alfabeto. L'input viene portato in maiuscolo prima dell'analisi, così che l'esadecimale 'ff' e 'FF' siano equivalenti, e ogni carattere viene controllato per essere una cifra valida strettamente inferiore a from_base — qualsiasi altra cosa restituisce un errore tipizzato invalid_input. La risposta restituisce il value originale, from_base, to_base e la stringa del risultato codificato, così che l'esempio binario '1010' dalla base 2 alla base 10 restituisca '10'.
Input accettato e regole rigorose
value deve essere una stringa non vuota lunga non più di 200 caratteri, e anche il risultato codificato è limitato a 200 caratteri. È ammesso un singolo segno meno iniziale, conservato durante l'andata e ritorno, così che i numeri negativi vengano convertiti correttamente, ma i prefissi di base vengono esplicitamente respinti: qualsiasi valore che inizi con 0x, 0X, 0b o 0B restituisce invalid_input, perché la base è data da from_base, non dedotta da un prefisso. Non c'è alcun supporto per parti frazionarie o virgola decimale — solo interi. from_base e to_base devono essere entrambi interi entro 2 e 36; un valore fuori da quella finestra, una cifra non legale per la base di origine, una stringa vuota o troppo lunga, o un semplice segno meno sollevano tutti un errore tipizzato invalid_input con un messaggio che nomina il difetto, così che i chiamanti possano intercettarlo e mostrarlo in modo pulito.
Casi di integrazione
Conversione di radice in blocco
Richiami l'API su una colonna di valori per convertire un intero dataset tra due basi in un unico lavoro.
Domande tecniche
Quali basi sono supportate?
Qualsiasi radice intera da 2 a 36 sia per from_base sia per to_base, usando le cifre 0-9 e poi A-Z.
Posso usare i prefissi 0x o 0b?
No. I valori con prefisso vengono respinti con invalid_input; la radice deriva da from_base, non da un prefisso.
Quali sono i limiti e il costo?
value e risultato sono ciascuno limitati a 200 caratteri; il widget del browser è gratuito e l'API fattura solo le attività riuscite a $0.002.