Escolar Documentos
Profissional Documentos
Cultura Documentos
Circuitos Digitais
Rodrigo Hausen
CMCC UFABC
25 de janeiro de 2013
http://compscinet.org/circuitos
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
1 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
2 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
2 / 19
a1 = 1
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
2 / 19
a1 = 1
a2 = 1
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
2 / 19
a1 = 1
(0,6250)10 2 = ( 1 ,25)10
a2 = 1
(0,25)10 2 = ( 0 ,50)10
a3 = 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
2 / 19
a1 = 1
(0,6250)10 2 = ( 1 ,25)10
a2 = 1
(0,25)10 2 = ( 0 ,50)10
a3 = 0
(0,50)10 2 = ( 1 ,0)10
a4 = 1
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
2 / 19
a1 = 1
(0,6250)10 2 = ( 1 ,25)10
a2 = 1
(0,25)10 2 = ( 0 ,50)10
a3 = 0
(0,50)10 2 = ( 1 ,0)10
a4 = 1
(0,0)10 2 = ( 0 ,0)10
.. .. ..
. . .
a5 = 0
(0,8125)10 = (0,1101)2
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
2 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
3 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
3 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
3 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
3 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
3 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
3 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
4 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
4 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
4 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
4 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
4 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
4 / 19
10010,1001010 )2 = (
)16
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
4 / 19
)16
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
4 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
4 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
5 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
5 / 19
5 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
6 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
6 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
6 / 19
2
3
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
6 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
7 / 19
Aritmtica
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
8 / 19
Analisando a soma
Ex.: 397 + 654 = 1051
111
397
654
1051
vai-uns
+
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
9 / 19
Analisando a soma
Ex.: 397 + 654 = 1051
111
397
654
1051
vai-uns
+
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
9 / 19
Analisando a soma
Ex.: 397 + 654 = 1051
111
397
654
1051
vai-uns
+
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
9 / 19
Analisando a soma
Ex.: 397 + 654 = 1051
111
397
654
1051
vai-uns
+
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
9 / 19
Analisando a soma
Ex.: 397 + 654 = 1051
111
397
654
1051
vai-uns
+
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
9 / 19
Analisando a soma
Ex.: 397 + 654 = 1051
111
397
654
1051
vai-uns
+
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
9 / 19
Analisando a soma
Ex.: 397 + 654 = 1051
111
397
654
1051
vai-uns
+
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica 25 de janeiro de 2013
9 / 19
Analisando a soma
Ex.: 397 + 654 = 1051
111
397
654
1051
vai-uns
+
=
..
.
9 / 19
Analisando a soma
Ex.: 397 + 654 = 1051
111
397
654
1051
vai-uns
+
=
..
.
9 / 19
Algoritmo da soma
Entrada: nmeros com n algarismos A = an1 an2 . . . a1 a0 e
B = bn1 bn2 . . . b1 b0
Sada: nmero C = cn cn1 cn2 . . . c1 c0 com n + 1 algarismos que
representa a soma A + B.
VaiUm 0
PARA i = 0...n-1
SE VaiUm = 0
ci Tabuada[ai ][bi ]
VaiUm TemVaiUm[ai ][bi ]
SENO
ci TabuadaComVaiUm[ai ][bi ]
VaiUm VaiUmComVemUm[ai ][bi ]
cn VaiUm
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
10 / 19
Algoritmo da soma
Entrada: nmeros com n algarismos A = an1 an2 . . . a1 a0 e
B = bn1 bn2 . . . b1 b0
Sada: nmero C = cn cn1 cn2 . . . c1 c0 com n + 1 algarismos que
representa a soma A + B.
VaiUm 0
Tabuada
PARA i = 0...n-1
0 1
SE VaiUm = 0
0 0 1
ci Tabuada[ai ][bi ]
1 1 2
2 2 3
VaiUm TemVaiUm[ai ][bi ]
3 3 4
SENO
.. .. ..
. . .
ci TabuadaComVaiUm[ai ][bi ]
9 9 0
VaiUm VaiUmComVemUm[ai ][bi ]
cn VaiUm
2
2
3
4
5
..
.
=
3
3
4
5
6
..
.
4
4
5
6
7
..
.
5
5
6
7
8
..
.
Matriz[10][10]
6 7 8 9
6 7 8 9
7 8 9 0
8 9 0 1
9 0 1 2
.. .. .. ..
. . . .
5
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
10 / 19
Algoritmo da soma
Entrada: nmeros com n algarismos A = an1 an2 . . . a1 a0 e
B = bn1 bn2 . . . b1 b0
Sada: nmero C = cn cn1 cn2 . . . c1 c0 com n + 1 algarismos que
representa a soma A + B.
VaiUm 0
TabuadaComVaiUm
PARA i = 0...n-1
0 1 2 3 4
SE VaiUm = 0
0 1 2 3 4 5
ci Tabuada[ai ][bi ]
1 2 3 4 5 6
2 3 4 5 6 7
VaiUm TemVaiUm[ai ][bi ]
3 4 5 6 7 8
SENO
.. .. .. .. .. ..
. . . . . .
ci TabuadaComVaiUm[ai ][bi ]
9 0 1 2 3 4
VaiUm VaiUmComVemUm[ai ][bi ]
cn VaiUm
= Matriz[10][10]
5 6 7 8 9
6 7 8 9 0
7 8 9 0 1
8 9 0 1 2
9 0 1 2 3
.. .. .. .. ..
. . . . .
5 6 7 8 9
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
10 / 19
Algoritmo da soma
Entrada: nmeros com n algarismos A = an1 an2 . . . a1 a0 e
B = bn1 bn2 . . . b1 b0
Sada: nmero C = cn cn1 cn2 . . . c1 c0 com n + 1 algarismos que
representa a soma A + B.
VaiUm 0
TemVaiUm
PARA i = 0...n-1
0 1
SE VaiUm = 0
0 0 0
ci Tabuada[ai ][bi ]
1 0 0
2 0 0
VaiUm TemVaiUm[ai ][bi ]
3 0 0
.. .. ..
SENO
. . .
ci TabuadaComVaiUm[ai ][bi ]
9 0 1
VaiUm VaiUmComVemUm[ai ][bi ]
cn VaiUm
2
0
0
0
0
..
.
3
0
0
0
0
..
.
=
4
0
0
0
0
..
.
5
0
0
0
0
..
.
Matriz[10][10]
6 7 8 9
0 0 0 0
0 0 0 1
0 0 1 1
0 1 1 1
.. .. .. ..
. . . .
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
10 / 19
Algoritmo da soma
Entrada: nmeros com n algarismos A = an1 an2 . . . a1 a0 e
B = bn1 bn2 . . . b1 b0
Sada: nmero C = cn cn1 cn2 . . . c1 c0 com n + 1 algarismos que
representa a soma A + B.
VaiUm 0
VaiUmComVemUm
PARA i = 0...n-1
0 1 2 3 4
SE VaiUm = 0
0 0 0 0 0 0
ci Tabuada[ai ][bi ]
1 0 0 0 0 0
2 0 0 0 0 0
VaiUm TemVaiUm[ai ][bi ]
3 0 0 0 0 0
.. .. .. .. .. ..
SENO
. . . . . .
ci TabuadaComVaiUm[ai ][bi ]
9 1 1 1 1 1
VaiUm VaiUmComVemUm[ai ][bi ]
cn VaiUm
= Matriz[10][10]
5 6 7 8 9
0 0 0 0 1
0 0 0 1 1
0 0 1 1 1
0 1 1 1 1
.. .. .. .. ..
. . . . .
1 1 1 1 1
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
10 / 19
Algoritmo da soma
Como somar nmeros em outra base, p. ex., 2?
Ex.: (101011)2 + (100111)2 = (1010010)2 , ou seja,
(43)10 + (39)10 = (82)10
1 1111
101011
100111
1010010
vai-uns
+
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
11 / 19
Algoritmo da soma
Como somar nmeros em outra base, p. ex., 2?
Ex.: (101011)2 + (100111)2 = (1010010)2 , ou seja,
(43)10 + (39)10 = (82)10
1 1111
101011
100111
1010010
vai-uns
+
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
11 / 19
Algoritmo da soma
Como somar nmeros em outra base, p. ex., 2?
Ex.: (101011)2 + (100111)2 = (1010010)2 , ou seja,
(43)10 + (39)10 = (82)10
1 1111
101011
100111
1010010
vai-uns
+
TemVaiUm
0 1
0 0 0
1 0 1
TabuadaComVaiUm
0 1
0 1 0
1 0 1
VaiUmComVemUm
0 1
0 0 1
1 1 1
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
11 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
1 1 0 0 0 1
1 0 0 1 1
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
1 1 0 0 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 < 1, pede emprestado
1 1 0 0 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
pede
1 1 0 0 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
pede
1 1 0 0 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
pede
1 1 0 0 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
1 1 0 0 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0
1 1 10 0 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0
1 1 10 0 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 1
1 1 10 10 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 1
1 1 10 10 0 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 1 1
1 1 10 10 10 1
1 0 0 1 1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 1 1
1 1 10 10 10 1
1 0 0 1 1
1 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 1 1
1 1 10 10 10 1
1 0 0 1 1
1 1 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 1 1
1 1 10 10 10 1
1 0 0 1 1
1 1 1 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 1 1
1 1 10 10 10 1
1 0 0 1 1
1 1 1 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 1 1
1 1 10 10 10 1
1 0 0 1 1
1 1 1 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 1 1
1 1 10 10 10 1
1 0 0 1 1
1 1 1 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 10 1
1 1 10
1 0
1
1
10 10 1
0 1 1
1 1 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 10 1
1 1 10
1 0
1 1
1
10 10 1
0 1 1
1 1 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 10 1
1 1 10
1 0
0 1 1
1
10 10 1
0 1 1
1 1 0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
A B = C , A o minuendo, B o subtraendo
Da direita para a esquerda, algarismo por algarismo
Se o algarismo do minuendo menor que o do subtraendo,
empresta do algarismo esquerda
Ex.: 110001 10011
0 10 1
1 1 10
1 0
0 1 1
1
10 10 1
0 1 1
1 1 0
= 11110
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
12 / 19
Subtrao binria
Jeito fcil: usando complemento a 2
Ex.: 110001 10011
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
13 / 19
Subtrao binria
Jeito fcil: usando complemento a 2
Ex.: 110001 10011
Complemento a 1 de 10011 com 6 algarismos (maior quantidade de
algarismos entre minuendo e subtraendo):
111111
| {z } 10011 = 101100
6 uns
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
13 / 19
Subtrao binria
Jeito fcil: usando complemento a 2
Ex.: 110001 10011
Complemento a 1 de 10011 com 6 algarismos (maior quantidade de
algarismos entre minuendo e subtraendo):
111111
| {z } 10011 = 101100
6 uns
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
13 / 19
Subtrao binria
Jeito fcil: usando complemento a 2
Ex.: 110001 10011
Complemento a 1 de 10011 com 6 algarismos (maior quantidade de
algarismos entre minuendo e subtraendo):
111111
| {z } 10011 = 101100
6 uns
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
13 / 19
Subtrao binria
Jeito fcil: usando complemento a 2
Ex.: 110001 10011
Complemento a 1 de 10011 com 6 algarismos (maior quantidade de
algarismos entre minuendo e subtraendo):
111111
| {z } 10011 = 101100
6 uns
13 / 19
Subtrao binria
Usando complemento a 2:
A B = A + (B + 1), desprezando o ltimo vai-um
Ex.: 110001 10011
A = 110001, B = 10011
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
14 / 19
Subtrao binria
Usando complemento a 2:
A B = A + (B + 1), desprezando o ltimo vai-um
Ex.: 110001 10011
A = 110001, B = 10011
B = 101100
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
14 / 19
Subtrao binria
Usando complemento a 2:
A B = A + (B + 1), desprezando o ltimo vai-um
Ex.: 110001 10011
A = 110001, B = 10011
B = 101100, B + 1 = 101101
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
14 / 19
Subtrao binria
Usando complemento a 2:
A B = A + (B + 1), desprezando o ltimo vai-um
Ex.: 110001 10011
A = 110001, B = 10011
B = 101100, B + 1 = 101101
A + (B + 1) =
1
1 1
+
1 0
/
1\ 0 1
0
1
1
0
1
1
1
0
0
1
vai-uns
1
1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
14 / 19
Algoritmo da subtrao
Subtrao(A[0...n-1], B[0...n-1])
B ComplementoAUm(B)
Um Array[0...n]
Um[0] 1
ComplementoADois Soma(B,Um)
// descarta n+1-simo dgito criado para a soma
ComplementoADois ComplementoADois[0...n-1]
C Soma(A, ComplementoADois)
C C[0...n-1] // descarta vai-um
RETORNE C
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
15 / 19
Algoritmo da subtrao
Subtrao(A[0...n-1], B[0...n-1])
B ComplementoAUm(B)
Um Array[0...n]
Um[0] 1
ComplementoADois Soma(B,Um)
// descarta n+1-simo dgito criado para a soma
ComplementoADois ComplementoADois[0...n-1]
C Soma(A, ComplementoADois)
C C[0...n-1] // descarta vai-um
RETORNE C
ComplementoAUm(B[0...n-1])
B Array[0...n-1]
PARA i = 0...n-1 FAA
SE B[i] = 0 ENTO B[i] 1
SE B[i] = 1 ENTO B[i] 0
RETORNE B
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
15 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
16 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
16 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
16 / 19
16 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
17 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
17 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
17 / 19
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
vai-uns
1
1
0
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
17 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
18 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
18 / 19
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
18 / 19
18 / 19
Para casa
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
19 / 19
Para casa
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
19 / 19
Para casa
Rodrigo Hausen (CMCC UFABC) Aula 2: Converso entre Bases, Aritmtica25 de janeiro de 2013
19 / 19