Finfo - Lezione 5
Modulo e Segno
1o bit è di segno → 0 POS1o bit è di segno → 1 NEGnumeri rappresentati da 9 (2w-1, 2w-1)
Complemento a Due
- N >= 0 Ncp2 = N2 + Ø iniziale (bit zero)
- N < 0 Ncp2 = (2n - |N|) → in questo caso il bit iniziale è 1
Operazione per Invertire 1n
- Negare (invertire) tutti i bit
- Somma 1 alla posizione meno significativa
m = ⌈log2 (|N|)⌉ + 1
Esempio
- N: 11 m: 5
- m = ⌈log2 (12)⌉ + 1 = ⌈3.5⌉ + 1 = 5
- 01011 (8 + 2 + 1)
1cp2 = opposto di 11 → 10100 +somma 110101(anche = 12)
1 + 1 + 16 = -11
Traduzione in 2cp2
2 metodi
- (2-1 |N|) → metodo divisioni ripetute (definizione)
- |N| → prodotto divisioni ripetute ➝ scomporre i duetti ➝ calcolare l'opposto
N = 01011MS ➝ +11= 11 ➝ +01011
INFO - Lezione 5
Modulo e segno
- 1o bit di segno = 0 POS
- Numeri rappresentati da 0 (2n-1, 2n-1 - 1)
Complemento a due
- N >= 0
- Ncp2 = N2 + Ø iniziale (bit zero)
- N < 0
- Ncp2 = (2n - |N|) in questo caso il bit iniziale è 1
Operazioni per invertire 1o n
- Negare (invertire) tutti i bit
- Sommare 1 alla posizione numero significativa
m = ⌈log2(|N|) + 1⌉ + 1
Esempio
- N: 11
- m: 5
m = ⌈log2(12)⌉ + 1 = ⌈3.5⌉ + 1 = 5
⊖1011
(8 + 2 + 1)
1cp2 = opposto di 11 10100 + somma 1
101101
1 + 2 + ... + 16 = -11
Traduzione in 2cp2 2 metodi
- (2n - |N|) = metodo divisioni ripetute
- |N| = prodotto divisioni ripetute
- Negli nuofi li aumenti
- Calcolare l'opposto
N: 1011
MS: ⊖11
+11
① N := 29
m = ⌊log2 (30)⌋ + 1 = ⌊4,1⌋ + 1 = 6
2921 1420 721 321 121 0011101
2() di N:=29
N := 29
1o metodo → def (2m-1-N1)
2o - 29 : 35
3521 1720 821 420 220 121 0100011
(-2910)
2c2
2o metodo → calcolo [29] e inverto poi aggiungo 1
011101
100010 1
1
100011
intervallo 2c2[.2m-1 + 2,2m-1 - 1]
m := 4 [-8, +7]
Riduzione o aumento
a riempo tenuti 0 → a replica le bit più acquivioativo → 00 010101
e al fiuno a quanto muovi a asiva ad valore che determania il puedes → 11 010101
% 00 10101
11 00101
OPERAZIONI
- addizione - cura fra i mutini
Esempio
A=77 B=-10010 A=0.10011010 77
B=10011100 -100
m = l2(78) + 1 = 8
m = l2(101) + 1 = 8
1.1101001 -23
-128+(64+32+8+1)
-128+105=-23
- sottrazione A-B = A-(-B)
Esempio
-B 1.0011100
opposto A=0.10011010 +
-B=0.1100100=
0.11001001
(-)1.0111001
1.0110100
negativo
OVERFLOW
- commando 2 parti abbiamo ottenuto num negativo
2CPS OVERFLOW
- addendi concordi RISULTATO DISCORD
- addendi discordi NON SI VERIFICA OVERFLOW
Esempio
A=12 B=-7 m=l2(13) + 1=5
1.1100100
proposto perduto
1.1100011
B=7=0.0111
A+B 03011
1.1100100
12001 77
1.1100101 +
1=0.000101
muovo che overflow perchè
A = (-48)
B = (111011)
A = 01001011
A:
10110100
B = (011011)
B:
1100101
A + B
01011010
NO OVERFLOW perché 2 addendi
causano danno risultato
concorde
-
Fondamenti di informatica
-
Fondamenti cpp
-
Lezione 2 fondamenti di informatica
-
Conversioni Numeriche per Fondamenti di Informatica 1