Vai al contenuto

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.

Tipo di operazione

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

Addizione in colonna con i riporti
Riga43210
Riporto in ingresso11010
A01101
B00101
Somma10010

Come usare il calcolatore binario

  1. 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. 2. Inserisci i numeri. Usa solo 0 e 1. Un segno meno iniziale, un prefisso 0b, spazi e trattini bassi sono tutti ammessi, quindi 1011 0110 viene letto come un unico numero.
  3. 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. 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.

I quattro casi di una singola colonna
Totale di colonnaBit scrittoRiporto in uscita
0 + 0 + 0 = 000
1 + 0 + 0 = 110
1 + 1 + 0 = 10 (2)01
1 + 1 + 1 = 11 (3)11

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

Operazioni bit a bit su due ingressi
ABANDORXORNANDNORXNOR
00000111
01011100
10011100
11110001

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. 11110011 vale 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.

Strumenti correlati

Altri strumenti: Dati, markup e codice