Convertitore di basi numeriche
Converte tra binario, ottale, decimale ed esadecimale. Supporta BigInt e operazioni bitwise con larghezze signed.
Bitwise operations
Informazioni su questo strumento
Number Base Converter traduce in modo incrociato un intero tra binario (base 2), ottale (base 8), decimale (base 10) ed esadecimale (base 16). Si digita il valore in uno qualsiasi dei quattro campi di input e gli altri tre si aggiornano in sincrono. La matematica a precisione arbitraria è integrata — si incolla un hash a 1024 bit e si ottiene comunque una risposta esatta, senza arrotondamenti in virgola mobile.
Un secondo pannello esegue operazioni bitwise sullo stesso valore: AND, OR, XOR, NOT, shift a sinistra, shift a destra, shift aritmetico a destra. Per ogni operazione si sceglie la larghezza intera (8/16/32/64 bit, signed o unsigned) in modo che le rappresentazioni in complemento a due siano mostrate correttamente — 0xFF è 255 in u8 ma -1 in i8, e lo strumento etichetta entrambi. Un'anteprima binaria in tempo reale evidenzia le posizioni dei singoli bit così da vedere esattamente cosa è cambiato.
Quando usare questo strumento
- Leggere e scrivere flag di configurazione. Molte API usano flag bitmask; convertire
0b10110in22o viceversa è una tassa quotidiana di questo stile. - Debug di dump esadecimali. Un byte che mostra
0xC0in memoria? È192decimale,0b11000000binario. - Calcolo di valori di colore. Colori CSS hex, codici di escape ANSI e stream byte di formati immagine vivono tutti in hex.
- Lavorare con i permessi sui file.
0o755↔0b111101101— la conversione è la base del Chmod Calculator.
Su BigInt e larghezze signed
IlNumber nativo di JavaScript perde precisione oltre 2^53. Usiamo BigInt per il valore stesso, così ogni intero scrivibile entra. Le larghezze signed contano per i numeri negativi: il complemento a due a 8 bit dice 0b10000000 = -128; a 16 bit lo stesso pattern è 32768. Lo strumento mostra sempre entrambe le interpretazioni così quella giusta è solo a un'occhiata di distanza.
Domande frequenti
Perché 0xFF mostra sia 255 che -1?
Quanto grande può essere il numero che lo strumento gestisce?
Qual è la convenzione di prefisso?
0b per binario (Python, JS, Rust), 0o per ottale (Python, JS, Rust — la vecchia forma con zero iniziale è deprecata), 0x per hex (universale). Il nostro strumento accetta input con o senza prefissi ed emette sempre risultati nella forma con prefisso convenzionale. C/C++ usa lo zero iniziale spoglio per l'ottale (0755), che è una mina vagante — non emettiamo mai quella forma.
Perché lo shift a destra si comporta a volte diversamente?
>>>) riempie i bit alti con 0 — usato per valori unsigned. Aritmetico (>>) riempie con il bit di segno — preserva il segno dei numeri negativi in complemento a due. -8 >> 1 = -4 (aritmetico) ma -8 >>> 1 = 2147483644 (logico, 32 bit). Lo strumento espone entrambi come pulsanti separati.