Chiarimenti sulle operazioni tra numeri binari
Salve, volevo chiedervi se potreste chiarirmi alcuni dubbi riguardo a come si fanno le operazioni tra numeri binari. Questo sarebbe ciò che non ho capito bene:
$1)$ Se è richiesto di fare la somma ad esempio a $8$ bit tra due binari che di norma si rappresentano con $3$ bit ciascuno, gli zeri a sinistra si aggiungono prima di fare la somma ad entrambi i numeri ? oppure solo al risultato finale ?
$2)$ Quando devo fare ad esempio ($15$) $+$ ($-5$) , devo prima trasformare in complemento a due il numero $-5$ ? oppure sommo normalmente e poi trasformo solo il risultato finale in complemento a due ?
$3)$ Quando, dopo un'operazione di somma o differenza, il risultato ha bisogno di un numero di bit maggiore di quelli "concessi" devo semplicemente tralasciare quelli che avanzano a sinistra ?
Grazie anticipate .
$1)$ Se è richiesto di fare la somma ad esempio a $8$ bit tra due binari che di norma si rappresentano con $3$ bit ciascuno, gli zeri a sinistra si aggiungono prima di fare la somma ad entrambi i numeri ? oppure solo al risultato finale ?
$2)$ Quando devo fare ad esempio ($15$) $+$ ($-5$) , devo prima trasformare in complemento a due il numero $-5$ ? oppure sommo normalmente e poi trasformo solo il risultato finale in complemento a due ?
$3)$ Quando, dopo un'operazione di somma o differenza, il risultato ha bisogno di un numero di bit maggiore di quelli "concessi" devo semplicemente tralasciare quelli che avanzano a sinistra ?
Grazie anticipate .
Risposte
"Francesco.91":
Salve, volevo chiedervi se potreste chiarirmi alcuni dubbi riguardo a come si fanno le operazioni tra numeri binari. Questo sarebbe ciò che non ho capito bene:
$1)$ Se è richiesto di fare la somma ad esempio a $8$ bit tra due binari che di norma si rappresentano con $3$ bit ciascuno, gli zeri a sinistra si aggiungono prima di fare la somma ad entrambi i numeri ? oppure solo al risultato finale ?
$2)$ Quando devo fare ad esempio ($15$) $+$ ($-5$) , devo prima trasformare in complemento a due il numero $-5$ ? oppure sommo normalmente e poi trasformo solo il risultato finale in complemento a due ?
$3)$ Quando, dopo un'operazione di somma o differenza, il risultato ha bisogno di un numero di bit maggiore di quelli "concessi" devo semplicemente tralasciare quelli che avanzano a sinistra ?
Grazie anticipate .
1) La somma in binario è come la somma in decimale: scorri i due numeri cifra per cifra, sommi e tieni conto dell'eventuale resto.
Esempio: 010 + 111
Parti da 0 + 1 = 1
Passi a 1 + 1 = 0 con resto 1
Passi a 0 + 1 = 1 a cui devi aggiungere il resto 1 = 0 con resto 1
Ovvero: 1001
2) Parti da conversione di 5 da base 10 a base 2. Fai il complemento a due e ottieni -5. Infine sommi il -5 con 10.
Nell'altro caso hai calcolato -15 perchè: sommi 10 e 5, ottieni 15, con complemento a due di tutto il risultato ottieni -15.
3) si verifica un overflow. Il come trattare l'overflow dipende dalle richieste dell'esercizio.
"hee136":
1) La somma in binario è come la somma in decimale: scorri i due numeri cifra per cifra, sommi e tieni conto dell'eventuale resto.
Esempio: 010 + 111
Parti da 0 + 1 = 1
Passi a 1 + 1 = 0 con resto 1
Passi a 0 + 1 = 1 a cui devi aggiungere il resto 1 = 0 con resto 1
Ovvero: 1001
e se il numero deve essere a 8 bit , aggiungo quattro zeri a sinistra di $1001$ ?
"Francesco.91":
[quote="hee136"]
1) La somma in binario è come la somma in decimale: scorri i due numeri cifra per cifra, sommi e tieni conto dell'eventuale resto.
Esempio: 010 + 111
Parti da 0 + 1 = 1
Passi a 1 + 1 = 0 con resto 1
Passi a 0 + 1 = 1 a cui devi aggiungere il resto 1 = 0 con resto 1
Ovvero: 1001
e se il numero deve essere a 8 bit , aggiungo quattro zeri a sinistra di $1001$ ?[/quote]
Sì.
Ok capisco...
Un'ultima cosa. Parlando di algebra booleana, se ho $X=1101$ e $Y=0010$ ed ho un'espressione tipo $(1101) AND (0010)$ non ho ben capito come si procede, nel senso: devo usare l'operatore logico AND tra OGNI cifra di un numero binario per OGNI cifra dell'altro numero ? oppure si fa una tabella della verità mettendoli in ordine.. in questo caso così:
$X$
$1$
$1$
$0$
$1$
$Y$
$0$
$0$
$1$
$0$
$X AND Y$
$1$
$1$
$1$
$1$
?
Un'ultima cosa. Parlando di algebra booleana, se ho $X=1101$ e $Y=0010$ ed ho un'espressione tipo $(1101) AND (0010)$ non ho ben capito come si procede, nel senso: devo usare l'operatore logico AND tra OGNI cifra di un numero binario per OGNI cifra dell'altro numero ? oppure si fa una tabella della verità mettendoli in ordine.. in questo caso così:
$X$
$1$
$1$
$0$
$1$
$Y$
$0$
$0$
$1$
$0$
$X AND Y$
$1$
$1$
$1$
$1$
?