You are on page 1of 66

Arquitetura e Organizao de Computadores

Prof. Geraldo Magela Almeida Bessa bessa@cesjf.br

REPRESENTAO DE DADOS

O que os computadores fazem? - Computadores manipulam representaes de coisas! O que se pode representar com N bits? - 2N coisas! Quais coisas? - Nmeros! Caracteres! Posio! Pixels! Instrues! ... Depende de quais operaes se faz sobre as coisas representadas.
AOC - Capitulo III Representacao de Dados 2

REPRESENTAO DE DADOS

Definio:
a forma de definir o tipo de informao que um dado representa, para que seja possvel a sua utilizao em operaes e instrues de um computador.

Tipo de Dados:
Quando um programador elabora um programa, ele precisa definir para o sistema como cada dado dever ser manipulado, ele dever determinar o tipo de cada dado declarado. Existem os tipos ou formas Simples e os Complexos: Formas Simples - Caracter, Lgico e Numrico; Formas Complexas - Registro, Array e Pointer.
AOC - Capitulo III Representacao de Dados 3

REPRESENTAO DE DADOS TIPOS DE DADOS

As seguintes formas de dados so mais utilizadas nos programas atuais de computadores (formas primitivas, entendidas pelo hardware) - Tipo Caractere Dados sob forma de caracteres alfabticos - Tipo Lgico - Dados sob forma lgica - Tipo Numrico - Dados sob forma numrica clculos matemticos
AOC - Capitulo III Representacao de Dados 4

REPRESENTAO DE DADOS TIPOS DE DADOS

Dados: - Numricos clculos matemticos - Caracteres alfabticos - Lgicos

Internamente o computador trabalha na forma binria (0's e 1's)

AOC - Capitulo III

Representacao de Dados

REPRESENTAO DE DADOS TIPOS DE DADOS

Outras formas mais complexas so permitidas em certas linguagens modernas no entanto, durante o processo de compilao, os dados acabam sendo convertidos nas formas primitivas, para que o hardware possa entend-las e execut-las.
AOC - Capitulo III Representacao de Dados 6

REPRESENTAO DE DADOS CARACTERES E SMBOLOS

A representao de caracteres e smbolos em computador feita atribuindo-se a cada caractere ou smbolo um cdigo binrio. Desta forma so construdas tabelas (padres) em que cada cdigo binrio representa para o computador um determinado caractere ou smbolo. Cada computador (ou cada fabricante) adota um determinado padro. O nmero de bits que ser utilizado no padro uma deciso do fabricante e determinar quantos caracteres (e smbolos) podero ser representados. Nota: Se um padro utiliza 7 bits, ser possvel representar at 27 = 128 caracteres e smbolos e com 8 bits sero 28 = 256.
AOC - Capitulo III Representacao de Dados 7

REPRESENTAO DE DADOS CARACTERES E SMBOLOS

Vrios cdigos de caracteres foram desenvolvidos:


BCD Binary Code Decimal EBCDIC Extended Binary Coded Decimal Interchange Code ASCII American Standard Code for Information Interchange UNICODE

AOC - Capitulo III Representacao de Dados 8

REPRESENTAO DE DADOS CARACTERES E SMBOLOS

O principal padro hoje utilizado o ASCII, de 7 bits, com uma variao de 8 bits (ASCII extendido) em que o 8 bit permite representar outros 128 smbolos. Nota: Nos computadores PC, devido s diferenas lingsticas, com a necessidade de representar caracteres diferentes para para dar suporte a outras lnguas que no o ingls, foram criadas diversas "pginas de cdigo". Por exemplo, a pgina de cdigo 437 refere-se aos Estados Unidos, a 850 a Multilinge (Latin I), a 860 para Portugus (incluindo caracteres que no existem no ingls, tais como e os acentos).

AOC - Capitulo III

Representacao de Dados

REPRESENTAO DE DADOS CARACTERES E SMBOLOS

Nota: At 127, os cdigos pertencem tabela ASCII padro, enquanto os cdigos entre 128 e 255 fazem parte do ASCII extendida, podendo variar o caractere ou smbolo representado conforme a pgina de cdigo configurada. Outros padres foram e ainda so usados, por exemplo o EBCDIC (Extended Binary Coded Decimal Interchange Code, de 8 bits, usados nos computadores de grande porte IBM).

AOC - Capitulo III

Representacao de Dados

10

REPRESENTAO DE CARACTERES E SMBOLOS Alguns Exemplos ASCII

AOC - Capitulo III

Representacao de Dados

11

REPRESENTAO DE DADOS TIPO LGICO


Com esse tipo, podemos usar variveis que possuem apenas dois valores para representao: FALSO para o bit 0 (zero) VERDADEIRO para o bit 1 (um)

Essas variveis so usadas de vrias formas em um programa, podendo inclusive ser realizado um tipo de operao empregando operadores lgicos AND (E), OR (OU), NOT (Negao) e XOR (OU Exclusivo)
AOC - Capitulo III Representacao de Dados 12

REPRESENTAO DE NMEROS DCB DECIMAL CODIFICADO EM BINRIO


REPRESENTAO DE NMEROS DECIMAIS CODIFICADOS EM BINRIO (DCB) A representao de nmeros reais em ponto flutuante perfeitamente adequada para fazer clculos matemticos, cientficos, etc. No entanto, nessa representao podemos ter perda de preciso do nmero representado ou mesmo haver nmeros que no podem ser representados por overflow (excedem o nmero de bits do expoente). Quando estamos representando nmeros em que necessrio manter preciso at o ltimo algarismo, tal como nos clculos usados em procedimentos financeiros (o seu saldo no banco, por exemplo) no admissvel erro por aproximao.
AOC - Capitulo III Representacao de Dados 13

REPRESENTAO DE NMEROS DCB DECIMAL CODIFICADO EM BINRIO

Tem por objetivo garantir a representao de nmeros mantendo a preciso at o ltimo algarismo. A representao em ponto flutuante no tinha essa preciso. A idia representar, em binrio, cada algarismo de per si, de forma a que o nmero original seja integralmente preservado. A codificao BCD no possui extenso fixa, possibilitando representar nmeros com preciso varivel quanto maior o nmero de bit, maior ser a preciso.
AOC - Capitulo III Representacao de Dados 14

REPRESENTAO DE NMEROS DCB DECIMAL CODIFICADO EM BINRIO

A codificao de um dgito em BCD requer 4 bits.

Como a utilizao de apenas 4 bits por byte no eficiente, normalmente so armazenados 2 dgitos BCD num s byte. Esta representao chamada de BCD comprimido (packed BCD) Podemos constatar que mesmo assim h um desperdcio de cdigos; como BCD usa 4 bits (logo, haveria 16 representaes possveis) para representar 10 algarismos, 6 cdigos no so utilizados. A representao de nmeros em DCB nada mais do que a converso, a partir da tabela abaixo, de nmeros em decimal para binrio
Representacao de Dados 15

AOC - Capitulo III

REPRESENTAO DE NMEROS DCB DECIMAL CODIFICADO EM BINRIO


TABELA DE REPRESENTAO DOS NMEROS DECIMAIS EM BCD Decimal 0 1 2 3 4 5 6 7 8 9 invlidos -->
AOC - Capitulo III

BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010, 1011, 1100, 1101, 1110, 1111
Representacao de Dados 16

REPRESENTAO DE NMEROS
O QUE FAZER COM REPRESENTAES DE NMEROS ?
EXATAMENTE O QUE FAZEMOS COM NMEROS !

. Som-los . Subtra-los . Multiplic-los . Divid-los . Compar-los To simples somar em binrio que podemos fazer circuitos para faz-lo
AOC - Capitulo III Representacao de Dados 17

REPRESENTAO DE NMEROS
No sistema de nmeros binrios, possvel representar nmeros arbitrrios usando os dgitos zero e um, o sinal de subtrao ("-", para nmeros negativos) a vrgula decimal (que separa a parte inteira e a parte fracionria do nmero). Por exemplo:

-1101,01012 = -13,312510 Entretanto, para armazenar e processar esses nmeros no computador, no possvel usar os sinais de menos e vrgula. Apenas dgitos binrios (0 e 1) podem ser usados para representao de nmeros. Isso no constitui um problema se quisermos apenas representar nmeros inteiros no negativos. Por exemplo, uma palavra de 8 bits pode ser usada para representar nmeros de 0 a 255. 00000001 = 1 , 00101001 = 41 ,
18

00000000 = 0 ,
AOC - Capitulo III

10000000 = 128 ,

11111111 = 255

Representacao de Dados

REPRESENTAO DE NMEROS

De modo geral, se uma seqncia de n dgitos binrios an-1an-2...a1a0 , for interpretada como um nmero inteiro sem sinal A, seu valor ser dado por:
n-1

A = 2i ai
i=0

AOC - Capitulo III Representacao de Dados 19

REPRESENTAO DE NMEROS
Dados Numricos Positivos, Negativos:

A representao de nmeros inteiros positivos direta e imediata. Entretanto, necessrio expandir (ou modificar) esta representao para incluir tambm nmeros negativos. Diversas representaes foram desenvolvidas com este propsito: Inteiros positivos ; Sinal-magnitude; Complemento de Base - 1; Complemento de Base.
AOC - Capitulo III Representacao de Dados 20

REPRESENTAO DE NMEROS
SINAL E MAGNITUDE
Representao em Sinal e Magnitude: No sistema decimal, o smbolo "-" usado para indicar nmeros negativos, e o smbolo "+" (ou um espao vazio) para nmeros positivos. Para representar nmeros com sinal, a Representao em Sinal e Magnitude utiliza um dgito para representar o sinal. Com isto ganha-se a possibilidade de representar inteiros negativos, mas a faixa de representao reduzida, porque tem-se agora somente (n-1) dgitos para representar a magnitude.

AOC - Capitulo III

Representacao de Dados

21

REPRESENTAO DE NMEROS
SINAL E MAGNITUDE Faixa de Representao:
Denomina-se AMPLITUDE ou FAIXA de REPRESENTAO num determinado mtodo o conjunto de nmeros que podem ser nele representados. Divide-se a gama de representao em dois subconjuntos simtricos, um para nmeros negativos e outro para positivos. A faixa dos nmeros positivos reduzida de um fator igual a base B.
AOC - Capitulo III Representacao de Dados 22

REPRESENTAO DE NMEROS
SINAL E MAGNITUDE Faixa de Representao:
Em binrio, entretanto, com B = 2, obtm-se 2.2n-11 , ou seja, 2n 1 (isto , Bn 1 ). Assim, somente uma representao perdida (a do duplo zero). Em binrio, utiliza-se usualmente "0" no lugar de "+" e "1" ao lugar de "-". Assim, para 4 dgitos, 0111 representa 7, 1111 representa -7, 0000 representa zero e 1000 representa -0.

AOC - Capitulo III

Representacao de Dados

23

REPRESENTAO DE NMEROS
SINAL E MAGNITUDE
Desvantagens:
A representao sinal-magnitude apresenta diversas desvantagens. Uma delas que, para efetuar operaes de adio e subtrao, preciso considerar tanto a magnitude quanto o sinal dos dois operandos. Outra desvantagem que existem duas representaes para 0: +0,0 = 00000000 0,0 = 10000000 (sinal-magnitude) Isso inconveniente, pois mais difcil testar se um valor igual a 0 (operao que executada freqentemente) do que no caso em que existe uma nica representao para 0.
AOC - Capitulo III Representacao de Dados 24

REPRESENTAO DE NMEROS
SINAL E MAGNITUDE
Aritmtica:
O problema encontrado pelos fabricantes de computadores na implementao da UAL que efetuasse operaes aritmticas com valores representados em sinal e magnitude residiu, principalmente, em dois fatores: custo e velocidade. Custo, devido necessidade de construo de dois elementos diferentes, um para efetuar somas e outro para efetuar subtraes (dois componentes eletrnicos custam mais caro que um; e velocidade, ocasionada pela perda de tempo gasto na manipulao dos sinais, de modo a determinar o tipo da operao e o sinal do resultado. Exemplos: Clculo do valor do nmero, Troca de Sinal e Soma de nmeros.
AOC - Capitulo III Representacao de Dados 25

REPRESENTAO DE NMEROS
SINAL E MAGNITUDE

Concluso:
Em virtude dessas desvantagens, a representao sinal-magnitude raramente usada na implementao da parte inteira de uma ULA. 0 esquema mais comum a representao em complemento de dois.

AOC - Capitulo III

Representacao de Dados

26

REPRESENTAO DE NMEROS
Nmeros Reais

Nmeros Reais:
Nmeros reais so aqueles com parte fracionria (por exemplo: 57,683). Estamos acostumados a representar esses nmeros no formato parte inteira, vrgula (ou ponto), parte fracionria:

Esta representao, embora cmoda para clculos no papel, no adequada para processamento no computador.
AOC - Capitulo III Representacao de Dados 27

REPRESENTAO DE NMEROS
Nmeros Reais

Representao em ponto flutuante


quando o ponto varia sua posio, modificando, em conseqncia, o valor representado. Consideremos o nmero 57,683. Este nmero pode ser tambm expresso como 57,683 x 100. E tambm poderia ser expresso com 57683 x 10-3 ou ainda 0,57683 x 102. Na realidade, qualquer nmero - inteiro ou fracionrio pode ser expresso neste formato nmero x base expoente, em que variamos duas coisas: a posio da vrgula (que delimita a parte fracionria) e a potncia qual elevamos a base.
AOC - Capitulo III Representacao de Dados 28

REPRESENTAO DE NMEROS
Nmeros Reais

Representao Normalizada
O nmero preparado movendo a vrgula para a direita ou para a esquerda de forma que o nmero seja menor que 1, o mais prximo possvel de 1, obviamente multiplicado por uma potncia da base de forma a manter o valor do nmero. Em geral, isso significa que o primeiro dgito significativo seguir imediatamente ao ponto (ou vrgula). Por exemplo:
57,68310 --> normalizando ==> 0,57683 x 102 0,000462810 --> normalizando ==> 0,4628 x 10-3 0,000010112 --> normalizando ==> 0,1011 x 2-4

De forma genrica, podemos representar a forma normalizada: nmero x base expoente


AOC - Capitulo III Representacao de Dados 29

REPRESENTAO DE NMEROS
Nmeros Reais

Representao Normalizada
o nome de mantissa, e portanto podemos representar:(os algarismos significativos), damos o nome de mantissa, e portanto podemos representar: 0,M x B
e

onde M a mantissa, B a base e e o expoente.


AOC - Capitulo III Representacao de Dados 30

REPRESENTAO DE NMEROS
Nmeros Reais

Faixa de Representao (Overflow e Underflow)


Ocorre overflow quando o valor absoluto do dado a ser representado excede a capacidade de representao, porque o nmero de bits do expoente (neste caso, positivo) insuficiente para representar o dado. Ocorre underflow quando o valor absoluto do dado a ser representado to pequeno que fica menor que o menor valor absoluto representvel. OBS.: Underflow no o mesmo que impreciso. Dados na faixa de underflow no podem ser representados, ocorrendo estouro no expoente. No caso de impreciso, a normalizao permite que o dado seja representado, porm com perda de preciso.
AOC - Capitulo III Representacao de Dados 31

REPRESENTAO DE NMEROS
Nmeros Reais

Faixa de Representao

AOC - Capitulo III

Representacao de Dados

32

REPRESENTAO DE NMEROS
Nmeros Reais

Aritmtica

Soma e Subtrao:

Algoritmo: a) Verifica-se se uma das mantissas a operar zero; caso afirmativo: - se for uma soma e uma das parcelas for zero ---> o resultado igual outra parcela - se for uma subtrao e o subtraendo for zero ---> o resultado igual ao minuendo - se for uma subtrao e o minuendo for zero ---> o resultado igual ao subtraendo, com o sinal invertido b) Se no houver zeros: - reduzir ao mesmo expoente (o maior); - somar / subtrair as mantissas; - normalizar o resultado. (m1 x be1) + (m2 x be2) = (m1 x be1) + (m3 x be1) = (m1 + m3 ) x be1 (m1 x be1) - (m2 x be2) = (m1 x be1) - (m3 x be1) = (m1 - m3 ) x be1
AOC - Capitulo III Representacao de Dados 33

REPRESENTAO DE NMEROS
Nmeros Reais

Aritmtica

Multiplicao:
a) Verifica-se se uma das mantissas a operar zero; caso afirmativo, o resultado zero; b) Se no houver zeros: - somar os expoentes; - multiplicar as mantissas; - normalizar o resultado.
(m1 x be1) x (m2 x be2) = (m1 x m2) b(e1+e2)

Algoritmo:

AOC - Capitulo III

Representacao de Dados

34

REPRESENTAO DE NMEROS
Nmeros Reais

Aritmtica

Algoritmo:

Diviso:

a) Verifica-se se uma das mantissas a operar zero;

caso afirmativo: - se o divisor zero, impossvel e d erro por diviso de zero; - se o dividendo zero, o resultado igual a zero. b) Se no houver zeros: - subtrair os expoentes; - dividir as mantissas; - normalizar o resultado.
(m1 x be1) / (m2 x be2) = (m1 / m2) b(e1-e2)
Representacao de Dados

AOC - Capitulo III

35

REPRESENTAO DE NMEROS
Nmeros Reais

Exemplos da aritmtica:
Considere um sistema onde a base seja 10 e que s seja permitido 3 dgitos significativos. Efetue as operaes indicadas:

AOC - Capitulo III

Representacao de Dados

36

REPRESENTAO DE NMEROS
Nmeros Reais

AOC - Capitulo III

Representacao de Dados

37

REPRESENTAO DE NMEROS EM COMPLEMENTO


Complemento de um nmero um OUTRO nmero obtido de modo a completar o valor do nmero de origem. Na matemtica, h dois casos de complemento na base 2 (binria), o complemento a 2 e o complemento a 1.

AOC - Capitulo III

Representacao de Dados

38

REPRESENTAO DE NMEROS EM COMPLEMENTO


Complemento a diferena entre cada algarismo do nmero e o maior algarismo possvel na base. A vantagem da utilizao da representao em complemento que a subtrao entre dois nmeros pode ser substituda pela sua soma em complemento.

AOC - Capitulo III

Representacao de Dados

39

REPRESENTAO DE NMEROS EM COMPLEMENTO

Representao em complemento de um

um mtodo de representao de nmeros negativos que se tornou popular no incio da Era dos computadores. Usando este sistema, nmeros positivos eram representados do mesmo modo que no sistema de sinal magnitude. Um bit de sinal 0 representa positivo e os nmeros negativos so representados pelo complemento de um do valor positivo, que formado pela troca de todos os 0 por 1 e de todos os 1Capitulo III por 0. AOC Representacao de Dados 40

REPRESENTAO DE DADOS
Complemento de UM

Vantagem

A principal vantagem da utilizao da representao em complemento que a subtrao entre dois nmeros pode ser substituda pela sua soma em complemento.

Desvantagens

Tem como desvantagem possuir duas representaes para o nmero ZERO (positiva e negativa) e no ser to rpido e simples como o mtodo de complemento a 2.
AOC - Capitulo III Representacao de Dados 41

REPRESENTAO DE DADOS
Complemento de UM

A representao dos nmeros inteiros negativos obtida efetuando-se: (base - 1) menos cada algarismo do nmero. Fica mais fcil entender atravs de exemplos: Ex.1: Calcular o complemento a (base - 1) do nmero 29710. Se a base 10, ento 10-1 = 9 e o complemento a (base -1) ser igual a complemento a 9

Ex.2: Calcular o complemento a (base - 1) do nmero 3A7EH. Se a base 16, ento 10H-1 = F e o complemento a (base -1) ser igual a complemento a F.
AOC - Capitulo III Representacao de Dados 42

REPRESENTAO DE DADOS
Complemento de UM

Portanto:

Exemplo 1

Exemplo 2 FFFF - 3A7E --------C581

(Base -1) --> 999 - 297 -------Complemento --> 702

AOC - Capitulo III

Representacao de Dados

43

REPRESENTAO DE DADOS
Complemento de UM

Caso Particular: Nmeros na Base 2 (Complemento a 1) Para se obter o complemento a 1 de um nmero binrio, devemos subtrair cada algarismo de 1. Uma particularidade dos nmeros binrios que, para efetuar esta operao, basta inverter todos os bits.

AOC - Capitulo III

Representacao de Dados

44

REPRESENTAO DE DADOS
Complemento de UM

Como exemplo, vamos calcular o complemento a 1 (C1) de um nmero binrio 0011 com 4 dgitos.

1111 - 0011 1100 (C1)

Portanto, bastaria inverter todos os bits!

AOC - Capitulo III

Representacao de Dados

45

REPRESENTAO DE DADOS
Complemento de UM
Se o nmero positivo, mantenha o nmero (o complemento de um nmero positivo o prprio nmero). Se o nmero negativo, inverta o nmero negativo ou na subtrao (todo 1 vira zero, todo zero vira um). Some 1 ao nmero em complemento. Some as parcelas (na subtrao, some o minuendo ao subtraendo). Se a soma em complemento acarretar "vai-um" ao resultado, ignore o transporte final.
AOC - Capitulo III Representacao de Dados 46

REPRESENTAO DE DADOS
Complemento de UM
Anlise da representao em C1 (Complemento de UM) dos nmeros binrios de 4 dgitos:

AOC - Capitulo III

Representacao de Dados

47

REPRESENTAO DE DADOS
Complemento de UM

FAIXA

DE

REPRESENTAO

A representao na base b em complemento a (base-1) com n bits possui bn representaes e permite representar bn-1 valores. H duas representaes para o zero.

A faixa de representao de uma representao na base 2 em complemento a (base-1) com n bits a mesma que em sinal e magnitude e pode ser calculada como 2n valores, entre: - ( 2n-1-1) e + ( 2n-1-1)

AOC - Capitulo III

Representacao de Dados

48

REPRESENTAO DE DADOS
Complemento de UM

FAIXA DE VALORES O maior valor inteiro positivo ser + ( 2n-1-1) e o menor valor inteiro negativo ser - ( 2n-1-1).

AOC - Capitulo III

Representacao de Dados

49

REPRESENTAO DE DADOS
Complemento de UM

A tabela de valores ao lado mostra uma relao interessante. Na primeira coluna, padres de 8 bits de 0 e 1 so mostrados. A segunda coluna mostra o nmero decimal que cada padro representa se considerarmos o padro sendo um nmero sem sinal. A terceira coluna mostra o nmero que cada padro representa se voc considerar o padro sendo o complemento de um do nmero AOC Representacao de Dados binrio. - Capitulo III

50

REPRESENTAO DE DADOS
Soma em Complemento de UM
Somar os dois nmeros, bit a bit, inclusive o bit de sinal. Avaliao dos casos de "vai-um": Se no ocorreu vai-um para o bit de sinal nem para fora do nmero: resultado correto;

Se ocorrer "vai-um" s para o bit de sinal (e no para fora do nmero): incorreto - ocorreu overflow (isto significa que o resultado excede a faixa de representao para o nmero de bits adotado); Se ocorrer "vai-um" para fora do nmero: para obter o resultado final, soma-se o "vai-um" externo (para fora do nmero) ao resultado da soma, o bit para fora do nmero (que excede o nmero de bits adotado na representao) desprezado; Nesta soma final tambm pode ocorrer "vai-um" no ltimo bit, se o nmero de "vai-um" ocorridos (para o bit de sinal, para fora do nmero ou na soma final) for par (o que equivale a inverter duas vezes o sinal): o resultado est correto; se o nmero for mpar (1 ou 3 "vai-um"): o resultado est incorreto ocorreu overflow; AOC - Capitulo III Representacao de Dados 51

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

Definio Vantagens e Desvantagens


Vantagens Desvantagens

Faixa de Valores Operaes

AOC - Capitulo III

Representacao de Dados

52

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

Definio

O complemento de dois apenas o acrscimo de 1 ao complemento de um, cujo objetivo final tornar menor o esforo computacional gasto para a realizao de subtraes

AOC - Capitulo III

Representacao de Dados

53

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

Vantagens

O algortmo para a adio de inteiros no negativos pode ser utilizado para quaisquer inteiros, desprezando-se o transporte que eventualmente existe nos bits mais significativos. No ocorre o inconveniente encontrado nos mtodos anteriores, ou seja, eliminada a duplicidade do 0 (zero). Esse mtodo mais eficiente e o mtodo empregado atualmente.

AOC - Capitulo III

Representacao de Dados

54

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

Desvantagens
Dado que trabalhamos com um nmero finito de dgitos, pode ocorrer um overflow, indicando que o resultado NO representvel. Se os inteiros so NO negativos e a soma for superior a (2 n-1 1) diz-se que h overflow, sendo n o nmero de bits. Exemplo: Soma em 8 bits em complemento de 2

entre 01111111 (+127) e 00000001 (+1) resulta em 10000000 (-128)


Representacao de Dados 55

AOC - Capitulo III

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

Desvantagens

Se os inteiros so ambos negativos e a soma for inferior a (2 n-1 1) diz-se que h underflow, sendo n o nmero de bits.
Soma em 8 bits em complemento de 2 entre 10000000 (-128) e 11111111 (-1) resulta em 01111111 (+127)

Exemplo:

AOC - Capitulo III

Representacao de Dados

56

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

Representao em complemento de dois

Assim como a representao sinal-magnitude, a representao em complemento de dois usa o bit mais significativo como bit de sinal, o que torna fcil testar se um nmero inteiro positivo ou negativo. Entretanto, os demais bits so interpretados de maneira diferente. A tabela a seguir relaciona as caractersticas chave da representao e da aritmtica em complemento de dois, abordadas nesta e na prxima seo.
AOC - Capitulo III Representacao de Dados 57

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS
Faixa de valores representveis Nmero de representaes para zero Negao 1 Pegue o complemento booleano de cada bit do nmero positivo correspondente e ento some 1 ao padro de bits resultante, tratado como um nmero inteiro sem sinal. Acrescente posies de bit esquerda e preencha esses bits com o valor do bit de sinal original. Para subtrair B de A, pegue o complemento de dois de B e some-o Representacao de Dados 58 com A.

2 n-1

(2 n-1 1)

Expanso do nmero de bits

Regra de subtrao
AOC - Capitulo III

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

Faixa de valores

A faixa de valores depende da quantidade de bits do nmero : , onde n a quantidade de bits do nmero.

n-1

(2

n-1

1)

Exemplo: Caso o nmero seja de 4 bits (n=4), a faixa de valores ser --> -8 a 7

AOC - Capitulo III

Representacao de Dados

59

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

ARITMTICA DE NMEROS INTEIROS


As operaes aritmticas mais comuns em nmeros representados em complemento de dois:

Negao
Na representao sinal-magnitude, a regra para a negao de um nmero inteiro simples: basta inverter o valor do bit de sinal.

Adio e subtrao
A adio de nmeros na representao em complemento de dois apresentada na Figura a seguir. 0 resultado de uma adio pode ter um nmero de bits maior do que o tamanho da palavra usada. Essa condio denominada overflow.

AOC - Capitulo III

Representacao de Dados

60

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

A subtrao tambm implementada facilmente, usando a seguinte regra: para subtrair um nmero S (subtraendo) de um nmero M (minuendo), pegue o complemento de dois (negao) de S e acrescente esse valor a M.

1001 +0101 1110 = -2 (a) (-7) + (+5) 0011 +0100 0111 = 7 (c) (+3) + (+4) 0101 +0100 1001 = Overflow (e) (+5) + (+4)

1100 +0100 10000 = 0 (b) (-4) + (+4) 1100 +1111 11011 = 5 (d) (-4) + (-1) 1001 +1010 10011 = Overflow (f) (-7) + (-6)

AOC - Capitulo III

Representacao de Dados

61

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS

Multiplicao

Comparada s operaes de adio e subtrao, a multiplicao uma operao complexa, seja implementada em hardware seja em software. Uma grande variedade de algoritmos de multiplicao tem sido usada em diversos computadores.

AOC - Capitulo III

Representacao de Dados

62

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS
Somar os dois nmeros, bit a bit, inclusive o bit de sinal; Despreza-se o bit para fora do nmero, se houver; Se no ocorreu vai-um para o bit de sinal nem para fora do nmero ou se ocorrer vai-um tanto para o bit de sinal quanto para fora do nmero (equivale a inverter duas vezes o sinal): o resultado est correto; Se ocorrer "vai-um" s para o bit de sinal (e no para fora do nmero): o resultado incorreto - ocorreu overflow; Se no ocorrer "vai-um" para o bit de sinal e somente ocorrer para fora do nmero: significa que o resultado excede a faixa de representao para o nmero de bits adotado.
AOC - Capitulo III Representacao de Dados 63

REPRESENTAO DE DADOS
COMPLEMENTO DE DOIS
REPRESENTAO DE NMEROS NEGATIVOS EM COMPLEMENTO A (BASE - 1) Conclui que, tal como na representao em sinal e magnitude, sempre que em uma representao em complemento o primeiro dgito binrio for 1, o nmero representado negativo! Mas importante notar que o bit mais significativo, na representao em complemento, ao contrrio do que ocorre na representao em sinal e magnitude, NO REPRESENTA O SINAL DE NEGATIVO! REPRESENTAO DE NMEROS NEGATIVOS EM COMPLEMENTO A BASE Concluir que, tal como na representao em sinal e magnitude e em complemento a (base-1), sempre que em uma representao em complemento a base o primeiro dgito binrio for 1, o nmero representado negativo! Mas importante notar que o bit mais significativo, na representao em complemento, ao contrrio do que ocorre na representao em sinal e magnitude, NO REPRESENTA O SINAL DE NEGATIVO!

AOC - Capitulo III

Representacao de Dados

64

REPRESENTAO DE DADOS

Concluses:
Ns representamos "coisas" no computador com padres particulares de bits: com N bits =>2N nmeros, caracteres, ... Operaes no Computador sobre as representaes de nmeros correspondem as operaes reais sobre as coisas reais.

AOC - Capitulo III

Representacao de Dados

65

REPRESENTAO DE DADOS

Concluses:
Decimal para clculos humanos, binrio para entender computadores, hexa para entender binrio Representao em Complemento de 2 universal em computao: no pode ser evitado, ento aprenda Overflow e Underflow: nmeros so infinitos mas os computadores so finitos, assim erros podem ocorrer
AOC - Capitulo III Representacao de Dados 66

You might also like