Professional Documents
Culture Documents
FEUP
Arquitetura e Organizao de
Computadores - EIC0083
1 ano, 1 semestre - 2014/15
Aritmtica binria
Antnio Jos Duarte Arajo
Representao de nmeros
Nmeros inteiros
Sistema posicional
Em base 10 (dez dgitos: 0, 1, 2, 3, , 8 e 9)
45210 = 4x102 + 5x101 + 2x100
Em base 2 (dois dgitos: 0 e 1)
11012 = 1x23 + 1x22 + 0x21 + 1x20 = 1310
Potncias inteiras de 2:
20=1, 21=2, 22=4, 23=8, ... 27=128, 28=256,
..., 210=1024, ...
Antnio Jos Arajo, DEEC/FEUP
Representao de nmeros
Como representar um nmero em base 2?
Dividindo sucessivamente por 2:
37 2
17 18 2
1 0 9 2
1 4 2
bit menos significativo
0 2 2
(o da direita, LSB least significant bit)
0 1
3710 = 1001012
Ou, decompor em potncias de 2:
3710 = 32 + 4 + 1 = 1x25 + 1x22 + 1x20 = 1001012
Antnio Jos Arajo, DEEC/FEUP
Nmeros fracionrios
direita da vrgula
Potncias negativas da base:
Em base 10:
35,7210 = 3x101 + 5x100 + 7x10-1 + 2x10-2
Em base 2:
110,1012 = 1x22 + 1x21 + 0x20 + 1x2-1 + 0x2-2 + 1x2-3
= 6,62510
0,72 x 2 = 1,44
0,44 x 2 = 0,88
0,88 x 2 = 1,76
0,76 x 2 = 1,52
...
0,7210 =0,10112
Adio binria
Recordar a adio em decimal:
Adio em binrio:
1 1 0 0
1
376
+ 18
394
transporte (carry)
transporte
1 1 0 1
+0 1 0 0
1 0 0 0 1
13
+4
17
em decimal
Subtrao binria
1 1 0 1
- 0 1 1 0
1
zero para um d um
1 1
-1
1 0 0 1
- 0 1 1 0
1 1
borrow
10
1 1 0 1
- 0 1 1 0
1 1
correco
1
0
+
- 1
1 0 1
1 1 0
1
0 1 0
1 1
adicionar o borrow
ao diminuidor
subtrair o borrow
do diminuendo
borrow
10
1 0 0 1
- 0 1 1 0
1 1 1
um para dois
d um e vai um...
1
0
+1
- 1
0
1 1 0 1
- 1 0 1 0
0 1 1 1
zero para um d um
um para um d zero
correco
1
-1
0 0 0 1
- 0 1 1 0
0 1 1 1
1 0 1
1 1 0
1 1 0
1 1 1
um para um d zero
adicionar o borrow
ao diminuidor
Multiplicao binria
Em binrio a multiplicao realizada como em decimal:
x
0
1 0
+ 0 0 0
0 1 1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
um vezes 1011
zero vezes 1011
1 1
x5
5 5
em decimal
10
10410 = 11010002
104 4 = 2610 = 00110102
11
Adio
Subtrao
1 1 0 0
+ 0 1 1 1
1 0 0 1 1
(12)
(5)
(3)
1 1 0 1 (13)
- 0 1 1 0
(6)
0 1 1 1
(7)
resultado com 4 bits correcto
borrow = 1: ocorre overflow
(6)
0 1 1 0
- 1 1 0 1 (13)
(9)
1 1 0 0 1
1
12
positivos
5000
(1)0000
mximo negativo
(-5000)
zero
(0000)
(1)4999
mximo positivo
(4999)
13
0000 0001
Algumas adies:
0002
9997 (
-3)
+1345 (+1345)
11342 (+1342)
9997 (-3)
sinnimo de
deu a volta
7500
(-2500)
negativos
positivos
2500
-X, se negativo,
dado por bN-X
4324 (+4324)
+7456 (-2544)
11780 (+1780)
4324 (+4324)
+2151 (+2151)
6475 (-3525)
h overflow!
4999 (o maior positivo)
5000
(representa 5000, o mais negativo)
Antnio Jos Arajo, DEEC/FEUP
no confundir overflow
com a existncia de carry!
14
0000 0001
0011
Algumas adies:
1101 (-3)
+0101 (+5)
10010 (+2)
1101 (-3)
1100 (-4)
negativos
positivos
0100
0010 (+2)
+0100 (+4)
0110 (+6)
1110 (-2)
+1100 (-4)
11010 (-6)
0100 (+4)
+0100 (+4)
1000 (-8)
neste formato,
X[-8; 7]
overflow!
15
16
Complemento para 2
Numa representao com N bits
Sendo X<0, X representa-se por Y=2N-X
intervalo de representao
[-2N-1, +2N-1-1] (ex. com 8 bits: X[-128; +127])
17
positivos
(1)00002
mximo negativo
(-8)
zero
0111 2
mximo positivo
(+7)
18
-3
+ 4
1
1 0 0 1
+ 1 1 0 0
1 0 1 0 1
0 0 1 1
+ 0 1 1 1
1 0 1 0
3
+ 7
10
resultado errado!
ocorre overflow porque os sinais
dos operandos so iguais e o
resultado tem o sinal oposto
1 1 1 0
+ 1 1 0 1
1 1 0 1 1
resultado errado!
no h carry-out mas ocorre overflow
porque os sinais dos operandos so
iguais e o resultado tem o sinal oposto
-7
+ 4
-1 1
-2
+ -3
-5
19
1 1 0 1
- 0 1 0 0
1 0 0 1
-7
- 4
-11
resultado errado!
ocorre overflow porque os sinais
dos operandos so diferentes e o
resultado tem o sinal do subtractor
0 0 1 1
- 0 1 1 1
1 1 1 0 0
despreza-se sempre o
transporte para alm dos
4 bits considerados
3
- 7
-4
-3
- 4
- 7
-2
- -1
- 1
resultado correcto:
h borrow mas no ocorre
Generalizando, na subtraco (compl. para 2):
overflow porque os sinais
se os operandos tiverem sinais opostos
dos operandos so iguais poder existir overflow; caso contrrio
nunca existir overflow
20
Extenso de sinal
adicionar X=1101 com Y=110100, representados
em complemento para 2 com 4 e 6 bits:
extenso de sinal de X
11 01
1
1
01 00
+
11 1 1 0 1
+11 0 1 0 0
1 11 0 0 0 1
resultado com 6 bits ( (-3)+(-12) = -15)
01 01 0
+1 00 00 0
21
sinal
expoente
Nmero de bits:
Significando, ou mantissa
1
Sinal
Expoente
m
Significando
22
Representao normalizada
Forma de representao em que o MSB do
significando 1
Exemplo: 0,10102011 = 0,01012100 = 1,01002010
normalizado
f=0100
E=010
Vantagens:
Poupa-se 1 bit no significando
Coerncia de representao
Facilita a comparao de nmeros VFL (expoentes)
Antnio Jos Arajo, DEEC/FEUP
23
Representao do significando
Hidden bit
frao
24
Representao do expoente
Representao em excesso:
Ke = grandeza do expoente real mais negativo (2e-1-1)
(geralmente designa-se por bias)
25
Gama de representao
Overflow
negativo
Underflow
positivo
Underflow
negativo
F-
- Mmax. Emax
Overflow
positivo
F+
- Mmin. Emin
Mmin. E min
Mmax. E max
26
27
...
b23
b22
...
b0
...
b52
b51
...
b0
28
29
Exemplo de representao
Representar o decimal Y=25,25 em VFL com preciso
simples (32 bits)
30
Adio/subtrao VFL
Sinal do resultado igual ao sinal do operando com maior
valor absoluto (comparao dos expoentes e
significandos)
Alinhamento do significando do operando com menor
valor absoluto: sofre deslocamento para a direita de
valor igual diferena dos expoentes
Adio dos significandos (subtrao se os operandos
tiverem sinais diferentes)
Expoente do resultado o expoente do operando com
maior valor absoluto
Normalizao do resultado, se necessrio (corrigindo o
expoente).
Antnio Jos Arajo, DEEC/FEUP
31
S+T = 11000010000010000000000000000000
Antnio Jos Arajo, DEEC/FEUP
32
Multiplicao VFL
Sinal do resultado: positivo, caso os operandos tenham
o mesmo sinal, ou negativo no caso contrrio
Multiplicao dos significandos
Adio dos expoentes e subtrao do excesso
Normalizao e ajuste do expoente, se necessrio.
33
Diviso VFL
Sinal do resultado: positivo, caso os operandos tenham
o mesmo sinal, ou negativo no caso contrrio
Diviso dos significandos
Subtrao dos expoentes e adio do excesso
Normalizao e ajuste do expoente, se necessrio.
34