Calcolatore binario
Digita due numeri binari e ottieni somma, differenza, prodotto o quoziente — con riporti, prestiti, prodotti parziali e passaggi della divisione lunga disposti colonna per colonna. Passa alla modalità bit a bit per applicare AND, OR, XOR, NOT, scorrimenti e rotazioni da 4 a 128 bit. Gratuito, senza registrazione, e nulla lascia il tuo browser.
Solo cifre binarie, con un eventuale segno meno iniziale. Spazi e trattini bassi vengono ignorati, quindi 1011 0110 è valido.
Risultato
1 0010
Binario
18
Decimale
12
Esadecimale
22
Ottale
5 bit
Lunghezza
Procedimento
| Riga | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|
| Riporto in ingresso | 1 | 1 | 0 | 1 | 0 |
| A | 0 | 1 | 1 | 0 | 1 |
| B | 0 | 0 | 1 | 0 | 1 |
| Somma | 1 | 0 | 0 | 1 | 0 |
Come usare il calcolatore binario
- 1. Scegli il tipo di operazione. Aritmetica somma, sottrae, moltiplica o divide. Bit a bit lavora sui singoli bit di sequenze di larghezza fissa.
- 2. Inserisci i numeri. Usa solo 0 e 1. Un segno meno iniziale, un prefisso
0b, spazi e trattini bassi sono tutti ammessi, quindi1011 0110viene letto come un unico numero. - 3. Scegli una larghezza (solo bit a bit). NOT, scorrimenti e rotazioni non hanno senso senza una larghezza, quindi il calcolatore la chiede: 4, 8, 16, 32, 64 o 128 bit.
- 4. Leggi il risultato e il procedimento. La risposta appare in binario, decimale, esadecimale e ottale, con il procedimento in colonna sotto.
Come funziona l'addizione binaria
L'addizione binaria segue le stesse regole di colonna di quella decimale, ma una colonna supera il limite a 2 invece che a 10. Somma i due bit di una colonna più l'eventuale riporto che arriva da destra. Se il totale è 0 o 1, scrivilo. Se è 2 o 3, scrivi il bit basso (0 o 1) e porta 1 alla colonna successiva.
| Totale di colonna | Bit scritto | Riporto in uscita |
|---|---|---|
| 0 + 0 + 0 = 0 | 0 | 0 |
| 1 + 0 + 0 = 1 | 1 | 0 |
| 1 + 1 + 0 = 10 (2) | 0 | 1 |
| 1 + 1 + 1 = 11 (3) | 1 | 1 |
Prendi 1101 (13) più 101 (5). Il calcolatore allinea entrambi su cinque colonne e mostra il riporto che arriva in ciascuna — 11010 da sinistra a destra — dando 10010, cioè 18. La riga dei riporti è la parte che si perde più facilmente quando si somma a mano.
Sottrazione, moltiplicazione e divisione
La sottrazione procede al contrario: quando una colonna richiede 1 − 1 − 1 o 0 − 1, prende in prestito 1 dalla colonna alla sua sinistra, che qui vale 2. 1000 − 0011 mostra un prestito che si propaga attraverso tre colonne e termina con 0101 (8 − 3 = 5). Quando A è minore di B, il calcolatore sottrae il minore dal maggiore e dà al risultato il segno meno.
La moltiplicazione è scorrimento e somma. Ogni 1 nel moltiplicatore contribuisce con una copia del moltiplicando spostata a sinistra della posizione di quel bit, mentre uno 0 non contribuisce con nulla. Per 1011 × 101 (11 × 5), gli 1 si trovano nelle posizioni 0 e 2, quindi i prodotti parziali sono 1011 e 101100, e la loro somma è 110111 — 55.
La divisione è divisione lunga con un passaggio di stima molto semplice. Porta giù un bit del dividendo alla volta; se il divisore entra in ciò che hai, sottrailo e scrivi un 1 nel quoziente, altrimenti scrivi uno 0. 1100100 ÷ 111 (100 ÷ 7) dà un quoziente di 1110 (14) e un resto di 10 (2). Con operandi negativi, il quoziente tronca verso lo zero e il resto prende il segno di A, come in C, Java e JavaScript.
Operazioni bit a bit a una larghezza scelta
| A | B | AND | OR | XOR | NAND | NOR | XNOR |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
Con 1100 e 1010 a 4 bit, AND dà 1000, OR dà 1110 e XOR dà 0110. NOT inverte ogni bit entro la larghezza, quindi lo stesso 1100 diventa 0011 a 4 bit ma 11110011 a 8 bit — ed è per questo che la larghezza conta.
Uno scorrimento a sinistra di n sposta ogni bit di n posizioni verso l'alto e riempie con zeri; i bit che escono dalla sommità vanno persi, e il calcolatore li elenca. Uno scorrimento logico a destra riempie con zeri. Uno scorrimento aritmetico a destra copia il bit più alto, quindi un numero negativo resta negativo: 10110110 scorso a destra di 2 è 00101101 in modo logico ma 11101101 (−19) in modo aritmetico. Le rotazioni riportano dall'altra estremità i bit che escono da un lato, quindi nulla va perso.
Nessun overflow nella modalità aritmetica
Qui l'aritmetica è esatta a qualsiasi lunghezza, quindi 11111111 + 1 fa 100000000, non 0. L'hardware reale mantiene un numero fisso di bit e ricomincia da capo. Per vedere quel comportamento — e gli intervalli con segno che ne derivano — usa il Two's Complement Calculator.
Errori comuni
- Dimenticare il riporto nella colonna più a sinistra. Sommare due numeri a 8 bit può produrre un risultato a 9 bit. Il calcolatore conserva la colonna in più.
- Confondere lo scorrimento logico e quello aritmetico a destra. Coincidono per numeri positivi e divergono per qualsiasi sequenza il cui bit più alto è 1. I linguaggi differiscono: in Java
>>è aritmetico e>>>è logico, mentre in C>>su un valore con segno negativo è lasciato al compilatore (aritmetico in quelli più diffusi). - Leggere per errore una sequenza di bit come numero con segno.
11110011vale 243 senza segno e −13 in complemento a due. I risultati bit a bit mostrano entrambi, così puoi capire quale intendi. - Supporre che NOT non dipenda dalla larghezza. In un intero illimitato, NOT di 12 è −13. Entro una larghezza fissa è la sequenza complementare, che è ciò che restituisce questo calcolatore.
Domande frequenti
- Come si sommano i numeri binari?
- Lavora da destra verso sinistra, sommando i due bit e l'eventuale riporto. Un totale di colonna 0 o 1 si scrive così com'è; un totale 2 si scrive come 0 con riporto 1, e un totale 3 come 1 con riporto 1. Ad esempio, 1101 + 101 = 10010. Il calcolatore mostra il riporto che entra in ogni colonna.
- Come si sottraggono i numeri binari?
- Sottrai colonna per colonna da destra. Quando una colonna scenderebbe sotto zero, prendi in prestito 1 dalla colonna successiva a sinistra, che aggiunge 2 alla colonna corrente. Se il secondo numero è maggiore, sottrai nell'ordine opposto e metti un segno meno nel risultato. 1000 − 11 = 101 (8 − 3 = 5).
- Qual è la differenza tra uno scorrimento logico e uno aritmetico a destra?
- Lo scorrimento logico a destra riempie con zeri i bit alti che si liberano, quindi tratta la sequenza come un numero senza segno. Lo scorrimento aritmetico copia il bit alto originale, quindi un numero negativo in complemento a due resta negativo. Entrambi dimezzano il valore, ma solo lo scorrimento aritmetico gestisce correttamente i valori negativi.
- Cosa fanno AND, OR e XOR?
- Confrontano due sequenze di bit colonna per colonna. AND dà 1 solo dove entrambi i bit sono 1, OR dà 1 dove almeno uno è 1, e XOR dà 1 dove esattamente uno è 1. AND serve a mascherare bit, OR a impostarli, e XOR a invertirli o a confrontare le differenze.
- Il calcolatore gestisce numeri binari negativi?
- In modalità aritmetica sì: metti un segno meno davanti e le regole sul segno si applicano al risultato esatto. La modalità bit a bit accetta invece sequenze di bit semplici, perché la sequenza di un numero negativo dipende dalla larghezza. Per trovare la sequenza di un valore negativo usa il Two's Complement Calculator.
- Quanto grande può essere un numero binario che inserisco?
- Non c'è un limite fisso, perché l'aritmetica usa interi di precisione arbitraria. Il procedimento in colonna è disegnato per operandi fino a 64 bit; oltre, ottieni comunque il risultato esatto senza la tabella dei passaggi. Le operazioni bit a bit sono limitate alla larghezza scelta, fino a 128 bit.