Você está na página 1de 3

Universidade Tecnolgica Federal do Paran Campus de Campo Mouro Tcnico Integrado em Informtica Instalao e Manuteno de Computadores Prof.

. Igor Steinmacher Representao de Dados Material de Apoio

Resumo e Algoritmos para Representao de Nmeros Inteiros em Sinal e Magnitude, Complemento de 1 e Complemento de 2

Sinal e Magnitude
Os nmeros binrios so representados de maneira que o primeiro bit da esquerda pra direita fica reservado para o sinal e os outros bits so usados para representar a magnitude do nmero (i.e., o nmero em si). Logo, para um nmero de 8 bits (1 byte), temos que 1 bit de sinal e os outros 7 so usados para representar a magnitude. Convenciona-se ento que nmeros comeados por 1 so negativos e nmeros comeados por 0 so positivos (Portanto, os nmeros positivos permanecem iguais, apenas adicionando-se um 0 ao incio). Sinal Magnitude 1. Represente o nmero absoluto (sem o sinal) em binrio, com o nmero de bits solicitado (completando com 0s a esquerda). 2. Caso o nmero seja positivo, no h alterao (o nmero j est representado) 3. Caso o nmero seja negativo, altera-se o bit mais a esquerda para 1 (representando o sinal de menos) Exemplos (representando os nmeros com 1 byte): Nmeros 17 -14 Passo 1 Representar o nmero absoluto Completando com 0s a esquerda (at 1 byte) Passo 2 Passo 3 No altera-se o nmero positivo Altera-se o bit mais da esquerda para 1 se o nmero negativo Resultado (em Sinal e Magnitude) 1710 = 1 0 0 0 12 0 0 0 1 0 0 0 12 0 0 0 1 0 0 0 12 No se aplica 0 0 0 1 0 0 0 12 0 0010001 + 17 1410 = 1 1 1 02 0 0 0 0 1 1 1 02 No se aplica 1 0 0 0 1 1 1 02 1 0 0 0 1 1 1 02 1 0001110 - 14

Complemento a 1
Complemento a 1 uma maneira de representao dos nmeros inteiros negativos, que so obtido efetuando-se: 1 menos cada algarismo do nmero. Em outras palavras, para complementar um nmero a 1, invertemos todos os bits do nmero binrio (todos os 0s viram 1s e todos os 1s viram 0s). Assim como na representao em Sinal e Magnitude, os nmeros positivos permanecem inalterados. A representao do primeiro bit representando um sinal continua vlida, sendo que nmeros positivos iniciam-se com 0 e nmeros negativos com 1. O algoritmo para representao de nmeros (iniciando-se com um nmero na base 10) com Complemento de 1 o seguinte: 1. Represente o nmero absoluto (sem o sinal) em binrio, com o nmero de bits solicitado

(completando com 0s a esquerda). 2. Caso o nmero seja positivo, no h alterao (o nmero j est representado) 3. Caso o nmero seja negativo, complementa-se o nmero a 1 (inverte-se o valor dos bits todo bit 0 passa a ser bit 1 e todo bit 1 passa a ser 0. ) Exemplos (representando os nmeros com 1 byte): Nmeros Passo 1 Representar o nmero absoluto Completando com 0s a esquerda (at 1 byte) Passo 2 Passo 3 No altera-se o nmero positivo Inverte-se o valor dos bits (Complementa-se) Resultado(em complemento de 1)

17 1710 = 1 0 0 0 12 0 0 0 1 0 0 0 12 0 0 0 1 0 0 0 12 No se aplica 0 0 0 1 0 0 0 12

-14 1410 = 1 1 1 02 0 0 0 0 1 1 1 02 No se aplica 1 1 1 1 0 0 0 12 1 1 1 1 0 0 0 12

Para descobrir o valor de um nmero representado em complemento de 1, deve-se proceder o caminho contrrio, seguindo-se o algoritmo a seguir: 1. Verifica-se o primeiro bit (que ainda tem como funo dizer qual o sinal do nmero) 2. Caso o nmero seja positivo (primeiro bit = 0), apenas converte-se para decimal para 'descobrir' o nmero 3. Caso o nmero seja negativo (primeiro bit = 1) (i) invertem-se os bits do nmero (retorno do complemento a 1) e (ii) converte-se o valor do nmero em decimal. (No esquecendo que o nmero NEGATIVO) Exemplos (representando os nmeros com 1 byte): Nmeros Passo 1 Passo 2 Passo 3 Verifica-se o primeiro bit Caso positivo, apenas converte-se o nmero Caso negativo: (i) invertem-se os bits do nmero (ii) converte-se o valor para decimal Resultado 10

0 0 0 0 1 0 1 02 0 0 0 0 1 0 1 02 0 nmero positivo 0 0 0 0 1 0 1 02 = 1010 (23 + 21 = 10) No se aplica

1 1 1 0 1 1 0 02 1 1 1 0 1 1 0 02 1 nmero negativo No se aplica 0 0 0 1 0 0 1 12 0 0 0 1 0 0 1 12 = 1910 19

Complemento a 2
A representao dos nmeros inteiros negativos em complemento a 2 obtida subtraindo-se cada algarismo de 1 (Complemento a 1) e depois somar 1 ao resultado. Complemento de dois o sistema mais usado para representao de nmeros inteiros com sinal nos computadores modernos. A representao em complemento de 2 tem o atrativo de propor uma nica representao para o nmero 0. O Algoritmo para obter-se um nmero em complemento de 2 um adendo ao algoritmo do complemento do 1, sendo: 1. Represente o nmero absoluto (sem o sinal) em binrio, com o nmero de bits solicitado

(completando com 0s a esquerda). 2. Caso o nmero seja positivo, no h alterao (o nmero j est representado) 3. Caso o nmero seja negativo, (i) complementa-se o nmero a 1, invertendo o valor dos bits (complemento a 1) (ii) soma-se 1 ao resultado do complemento a 1 Exemplos (representando os nmeros com 1 byte): Nmeros 17 -14 Passo 1 Representar o nmero absoluto Completando com 0s a esquerda (at 1 byte) Passo 2 Passo 3 No altera-se o nmero positivo (i) Inverte-se o valor dos bits (Complementa-se) (ii) Soma-se 1 ao resultado Resultado(em complemento de 2) 0 0 0 1 0 0 0 12 1710 = 1 0 0 0 12 0 0 0 1 0 0 0 12 0 0 0 1 0 0 0 12 No se aplica 1410 = 1 1 1 02 0 0 0 0 1 1 1 02 No se aplica 1 1 1 1 0 0 0 12 1 1 1 1 0 0 0 12 + 12 1 1 1 1 0 0 1 02 1 1 1 1 0 0 1 02

Para descobrir o valor de um nmero representado em complemento de 2, deve-se proceder o caminho contrrio, seguindo-se o algoritmo a seguir: 1. Verifica-se o primeiro bit (que ainda tem como funo dizer qual o sinal do nmero) 2. Caso o nmero seja positivo (primeiro bit = 0), apenas converte-se para decimal para 'descobrir' o nmero 3. Caso o nmero seja negativo (primeiro bit = 1) (i) subtrai-se 1 do nmero (tranformando em complemento a 1) (ii) invertem-se os bits do nmero (retorno do complemento a 1) e (iii) converte-se o valor do nmero em decimal. (No esquecendo que o nmero NEGATIVO) Exemplos (representando os nmeros com 1 byte): Nmeros Passo 1 Passo 2 Passo 3 Verifica-se o primeiro bit Caso positivo, apenas converte-se o nmero Caso negativo: (i) subtrai-se 1 do nmero (tranformando em complemento a 1) (ii) invertem-se os bits do nmero (iii) converte-se o valor para decimal Resultado 10

0 0 0 0 1 0 1 02 0 0 0 0 1 0 1 02 0 nmero positivo 0 0 0 0 1 0 1 02 = 1010 (23 + 21 = 10) No se aplica

1 1 1 0 1 1 0 02 1 1 1 0 1 1 0 02 1 nmero negativo No se aplica 1 1 1 0 1 1 0 02 12 = 1 1 1 0 1 0 1 12 0 0 0 1 0 1 0 02 0 0 0 1 0 1 0 02 = 2010 20

Na representao em complemento a 2, o zero (0) tem apenas uma representao. Por exemplo, em 8 bits, o 0 0 0 0 0 0 0 02 em complemento a 2.

Você também pode gostar