Você está na página 1de 25

Aritmtica Computacional

Nmeros binrios

Os nmeros podem ser representados em qualquer base:


Base 10 = decimal : preferida por ns humanos Base 2 = binrio: ideal para computadores, pois facilita a implementao do hardware com circuitos digitais Base 8 ou 16 = octal e hexadecimal: simplificam a representao binria valor do i-simo algarismo = d x (Base)i

Sistema de valor posicional:

Conjunto de Smbolos de cada base

Binria

{ 0 , 1} { 0 , 1 , 2 , 3 , 4 , 5 , 7 , 8 , 9} { 0 , 1 , 2 , 3 , 4 , 5 , 7 , 8 , 9, A , B , C , D , E , F } onde A=10, B=11, C=12, D=13, E=14, F=15

Decimal

Hexadecimal

Nmeros binrios

Qual o valor de 1101 ?

Depende da base em que o nmero est representado:


1101d = 1x(10)3 + 1x(10)2 + 1x(10)0 = 1101d 1101b = 1x(2)3 + 1x(2)2 + 1x(2)0 = 13d 1101o = 1x(8)3 + 1x(8)2 + 1x(8)0 = 557d 1101h = 1x(16)3 + 1x(16)2 + 1x(16)0 = 4353d
4

Converso de bases: De qualquer base para decimal

Usar a equao das bases


valor = i [di x (Base)i]

Binrio para decimal: 10001101b


1x(2)7 + 0x(2)6 + 0x(2)5 + 0x(2)4 + 1x(2)3 + 1x(2)2 + 0x(2)1+1x(2)0 128 + 0 + 0 + 0 + 8 + 4 + 0 + 1 = 141d

Converso de bases: De qualquer base para decimal

Usar a equao das bases


valor = i [di x (Base)i]

Binrio para decimal: 10001101b


1x(2)7 + 0x(2)6 + 0x(2)5 + 0x(2)4 + 1x(2)3 + 1x(2)2 + 0x(2)1+1x(2)0 128 + 0 + 0 + 0 + 8 + 4 + 0 + 1 = 141d

Hexadecimal para decimal: FADAh


6

Converso de bases: De qualquer base para decimal

Usar a equao das bases


valor = i [di x (Base)i]

Binrio para decimal: 10001101b


1x(2)7 + 0x(2)6 + 0x(2)5 + 0x(2)4 + 1x(2)3 + 1x(2)2 + 0x(2)1+1x(2)0 128 + 0 + 0 + 0 + 8 + 4 + 0 + 1 = 141d

Hexadecimal para decimal: FADAh


15x(16)3 + 10x(16)2 + 0x(16)1 + 10x(16)0 61440 + 2560 + 208 + 10 = 64218d
7

Converso entre hexa e binrio


Decimal Hexa Binrio

Agrupar em grupos de quatro, da direita para a esquerda e aplicar tabela de converso: (11101001111010b) para hexa
0011 . 1010 . 0111 . 1010 3 . A . 7 . A (11101001111010b) = 3A7Ah

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 1 2 3 4 5 6 7 8 9 A B C D E F

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

(FADAh) para binrio


F . A . D . A 1111 . 1010 . 1101 . 1010 (FADAh) = 1111101011011010b

Converso de bases: De decimal para binrio

Mtodo das divises sucessivas por 2


157d = 10011101b

Divisor 157 78 39 19 9 4 2 1 2= 2= 2= 2= 2= 2= 2= 2=

Quociente 78 39 19 9 4 2 1 0

Resto 1 0 1 1 1 0 0 1

Limites numricos

Qual o maior nmero positivo que pode ser representado com um nmero finito de bits :

Mximo = 2N 1
8 -> 255 16bits -> 65.535 32 bits -> 4.294.967.295 64 bits -> 18.446.744.073.709.551.616

10

Nmeros negativos

Formas triviais:

Bit de sinal Complemento de 1 Complemento de 2

Complemento de 2 utilizado virtualmente em todos os computares construdos desde 1965. O nome deriva do fato que a soma (sem considerar o sinal) de um nmero de N bits e seu negativo igual a 2N, ou seja, o complemento ou negao de um nmero x em complemento de 2 igual a 2N x
11

Nmeros negativos

Exemplo:

Representar o nmero decimal -57 em binrio


1) Representar 57 em binrio 2) Inverter todos os bits 3) Somar 1

> > >

00111001b 11000110b 11000111b

Implicao -> muda o limite dos nmeros que podem ser representados com a mesma quantidade de bits:

8 bits sem sinal: 0 255 8 bits com sinal: -128 127


12

Operao com nmeros binrios


Soma binria Subtrao Multiplicao Diviso Operaes lgicas

13

Operao de Soma binria


0 + 0 = 0 1 + 0 = 1 1 + 1 = 10 = 0 carry de 1 prxima posio 1 + 1 + 1 = 11 = 1 carry de 0 prxima posio 0 1 1 (3) + 1 1 0 (6) 1 0 0 1 (9) 1 0 0 1 (9) + 1 1 1 1 (15) 1 1 0 0 0 (24)

14

Operao de Soma binria


Funo lgica de trs entradas e duas sadas Executada a partir dos bits menos significativos do registrador Cout de um estgio alimenta o Cin do prximo estgio Cout do ltimo estgio indica overflow Exemplo

A 0 1 0 1 0 1 0 1

B 0 0 1 1 0 0 1 1

Cin 0 0 0 0 1 1 1 1

Soma Cout 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1

11001011b + 00101010b

15

Operao de Subtrao binria

Subtrair um nmero positivo equivalente a adicionar um nmero negativo de valor absoluto igual. A representao em complemento de 2 elimina a necessidade de uma operao exclusiva para realizar a subtrao, pois o circuito de adio pode ser utilizado

A B = A + (-B) = A + (~B + 1) 100 85 = ? 85 100 = ?


16

Exemplos

Operao de Multiplicao binria

Semelhante a multiplicao decimal: multiplicao de cada dgito, a partir do menos significativo com deslocamento a esquerda para cada parcela
1 0 1 1 (A) 1 0 1 0 (B) 0 0 0 0 + + + = 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 1 1 1 0 17
.

Operao de Multiplicao binria

Multiplicao:

Normalmente uma operao mais lenta que a soma, pois um processo iterativo e depende do nmero de bits do operando Existe multiplicadores em hardware, que funciona como uma grande funo lgica No pior caso, o nmero de bits do resultado igual soma do nmero de bits dos dois argumentos

8 bits x 8 bits = 16 bits 16 bits x 16 bits = 32 bits

Multiplicao de nmeros com sinal exigem mais tempo, pois precisam de processamento extra do sinal

Exemplo: -13 x 31 = ?

18

Operao de Diviso binria

Semelhante ao processo iterativo da diviso decimal:


1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1

1 0 1 1 divisor 1 0 0 1 resultado

Diviso da parte mais significativa pelo divisor multiplicao de cada dgito subtrao da parcela adio do prximo dgito repetindo at chegar a um resto menor que o divisor

1 0 1 0 resto

19

Operao de Diviso binria

Outra operao lenta, tambm um processo iterativo e depende do nmero de bits dos operandos Divisores em hardware so menos comum que os multiplicadores No pior caso, o nmero de bits do resultado igual ao dividendo Diviso de nmeros com sinal exigem mais tempo, pois precisam de processamento extra do sinal

20

Operao com nmeros mltiplos de 2

Assim como em decimal fcil dividir ou multiplicar por 10, em binrio operaes com mltiplos de 2 tambm so triviais. Multiplicao (para nmeros positivos e negativos)

A multiplicao por 2n equivale ao deslocamento de n bits para a esquerda, preenchendo com a lacuna com 0 Para nmeros positivos a diviso por 2n equivale ao deslocamento de n bits para a direita, preenchendo com a lacuna com 0 Para nmeros negativos a diviso por 2n equivale ao deslocamento de n bits para a direita, preenchendo com a lacuna com 1

Diviso

21

Operao de mudana do nmero de bits

Pode ser necessrio temporariamente para aumentar a preciso de clculo, ou melhorar utilizao de memria e recursos

Exemplo: clculo da mdia de 100 nmeros de 8 bits

Para nmeros positivos


adicionar ou remover ZEROS esquerda Ex.: 01010011b = 0000000001010011b

Para nmeros negativos


adicionar ou remover UNS esquerda Ex.: 11010011b = 1111111111010011b

22

Operaes lgicas

Operaes bit a bit: cada bit de um operando calculado com o bit de mesma posio do outro operando OR
A 0 1 0 1 B 0 0 1 1 A|B 0 1 1 1

AND
A 0 1 0 1 B 0 0 1 1 A&B 0 0 0 1

XOR
A 0 1 0 1 B 0 0 1 1 A^B 0 1 1 0

NOT
A 0 1 ~A 1 0

independem do sinal do nmero Ex.: A = 01010011b ; B= 01001110b ; A|B =? A^B=? A&B=? ~A=? ((~(A+B))&(A-B))^B = ?

~B=?
23

Operao com mscaras


Operaes bit a bit podem ser utilizados para operaes de mscara: Setar o bit 3 da varivel A

A = A | 00001000b A = A & 11011111b A = A ^ 00000101b A = ~A A = A ^ 11111111b


24

Resetar o bit 5 da varivel A

Mudar estado do bit 0 e 2 da varivel A

Mudar todos os bits da varivel A


Operao de comparao

Utilizados em procedimento de deciso Tipos de comparao


A == B 1 0 A>B 1 0

A != B 0 1 A <= B 0 1

Condio Todos os bits iguais Algum bit diferente Condio A - B positivo A - B negativo ou zero

Igual: A == B Diferente: A != B Maior: A > B Menor ou igual: A <= B Menor: A < B Maior ou igual: A >= B

A >= B 1 0

A<B 0 1

Condio A - B positivo ou zero A - B negativo

25

Você também pode gostar