Departamento de Engenharias e Ciência da Computação – DECC

Propaganda
Departamento de Engenharias e Ciência da Computação – DECC
Curso de Ciência da Computação
Disciplina de Introdução a Informática
Prof. Ms. Paulo Ricardo B. Betencourt
REPRESENTAÇÃO DE DADOS
Os conceitos vinculados à conversão de base, cálculo aritméticos em diferentes bases e complementos,
são necessários à construção dos computadores. Basicamente estes conceitos são usados para a
construção de circuitos digitais (usados no HW), que juntamente com as chamadas portas lógicas
(estudadas em estruturas algébricas), são combinados formando o coração do processador, a UAL
(Unidade Aritmética e Lógica), de onde partem todas as outras partes que o formam. Através de uma
série de circuitos que fazem somas, subtrações, comparações, entre outros, os bits podem ser
interpretados e arranjados da forma que quisermos. Estes conhecimentos são essenciais ainda para o
estudo de circuitos digitais, lógica para computação, arquitetura de computadores, entre outras áreas.
SISTEMAS DE NUMERAÇÃO
EVOLUÇÃO:
Desde tempos remotos o homem utiliza a escrita para registrar e transmitir informação. A escrita vai do
antigo hieróglifo egípcio até o alfabeto latino atual.
O alfabeto, como conjunto de símbolos, se desenvolve originalmente na Grécia e posteriormente em
Roma e constitui a origem de nosso alfabeto atual.
Uma das primeiras tentativas de registro de quantidades sob a forma escrita foi o sistema de numeração
indo-arábico, do qual são derivados os atuais sistemas de numeração decimal.
O SISTEMA DE NUMERAÇÃO é o conjunto de símbolos utilizados para representação de quantidades e
as regras que definem a forma de representação. Um sistema de numeração é determinado
fundamentalmente pela base (número de símbolos utilizados). A base é o coeficiente que determina
qual o valor de cada símbolo de acordo com a sua posição.
OBS:
dado – elementos distintos de uma informação;
Informação – coleção de dados representada de forma compreensível ao ser humano.
TIPOS DE SISTEMAS DE NUMERAÇÃO
SISTEMAS NÃO POSICIONAIS
São aqueles em que o valor atribuído a um símbolo não se altera, independentemente da posição em
que ele se encontra no conjunto de símbolos que está representando uma quantidade.
Ex. Sistema de numeração romano
XXI
10
10
X I X
1
10
1
10
SISTEMAS POSICIONAIS
São aqueles em que o valor atribuído a um símbolo depende da posição em que se encontra no
conjunto no conjunto de símbolos que está representando uma quantidade.
Ex. Sistema de numeração decimal
5 7 3
500
70
3 5 7
3
300
50
7 3 5
7
700
30
5
ELEMENTOS BIESTÁVEIS
A base física da informação no computador é o elemento biestável. Um elemento biestável é um
dispositivo que pode representar somente dois estados, o estado 0 e o estado 1. Ex. Chave: aberta e
fechada; lâmpada: acesa e apagada.
Um conjunto formado por dois elementos terá quatro estados possíveis e poderá representar quatro
opções: 00, 01, 10 e 11. Um conjunto de 3 elementos biestáveis representará oito opções e, em geral,
um conjunto com n elementos poderá representar até 2ⁿ opções. Com oito elementos, como em um
byte, poderemos representar até 2ⁿ, onde n=8, ou seja, 256 elementos, de 0 a 255.
As formas de assinalar números e outras informações a conjuntos de bits são, em realidade, muitas,
existindo formas padrões de agrupar os bits e os estados que estes conjuntos podem representar.
REPRESENTAÇÃO NUMÉRICA
A representação de quantidade no computador se baseia na representação de quantidades mediante
sistemas numéricos tradicionalmente conhecidos. Estes sistemas numéricos são posicionais, isto é, cada
quantidade é representada em uma única forma, mediante uma certa combinação de símbolos, que
tem um significado distinto, segundo sua posição.
No sistema decimal, por exemplo, cada posição tem um valor intrínseco que equivale a dez vezes o valor
da posição que está imediatamente a sua direita. Supondo que a cada posição designamos uma casa, o
valor das casas vai aumentando para a esquerda de 10 em 10 vezes e os dígitos ou símbolos que
podemos colocar nelas são 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9, os quais possuem um valor intrínseco distinto para
cada um.
Se representarmos o número 245 assinalando um símbolo a cada casa, indicando o valor de cada casa,
teremos:
Valor da
1000
100
10
1
0,1
0,01
casa
Dígitos
0
2
4
5
0
0
O significado de cada dígito em determinada posição é o valor da casa multiplicado pelo valor do dígito
e a quantidade representada é a soma de todos os produtos.
Um sistema numérico deste tipo, em que o valor de cada casa é dez vezes o valor da casa
imediatamente a sua direita, é conhecido como sistema decimal, ou de base dez. Se o valor da casa é
um outro número de vezes o valor da casa à direita, o sistema poderá ser de base dois ou binário, de
base dezesseis ou hexadecimal, etc. Para cada um destes sistemas necessitamos de um conjunto de
símbolos distintos. Por exemplo, o sistema hexadecimal utiliza os símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B,
C, D, E e F, onde A equivale a dez, B equivale a onze e assim consecutivamente até F que equivale a
quinze.
Deduzimos, então, que, para cada sistema numérico, utilizamos a quantidade de símbolos que
representa a base, quer dizer, para o sistema de base dez, utilizaremos dez símbolos, para o sistema
hexadecimal, utilizaremos dezesseis símbolos, e para o sistema binário, utilizaremos apenas dois
símbolos.
No computador, temos em princípio, apenas dois símbolos (0 e 1) portanto, poderíamos trabalhar
somente com sistema binário. Porém, como veremos adiante, poderemos combinar dois ou mais bits ou
símbolos binários para representar símbolos de outra base.
As alternativas são:
arepresentar todas as quantidades em sistema binário, utilizando somente os símbolos 0 e 1, em
que cada bit representa um dígito ou símbolo; e
bagrupar estes bits, de maneira a representar um dígito mediante um conjunto de bits.
Se utilizarmos a alternativa (b) poderemos agrupar os bits em conjuntos de 4, de tal modo que, para
cada grupo, tenhamos dezesseis possibilidades de representação e poderemos, então, utilizar o sistema
hexadecimal.
SISTEMA BINÁRIO
A maneira mais óbvia de representar quantidades por meio de bits é o sistema numérico, conhecido
com sistema binário, ou sistema numérico de base 2. Neste sistema, cada número se representa de uma
forma única, mediante uma combinação de símbolos 0 e 1, que, em nosso caso, será uma combinação
de “estados 1” e “estados 0” dos bits que forma um conjunto ordenado. Designaremos por Bi cada bit
deste conjunto ordenado, no qual o sub-índice i corresponde ao número da casa que está ocupando.
Cada casa vale duas vezes aquela que está imediatamente a sua direita. Desta forma, teremos que, se o
valor da primeira casa da direita for 20, a segunda valerá 20 x 2 = 21, e assim consecutivamente para a
esquerda. Os valores das casa ficam claros no seguinte esquema:
…
26
25
24
23
22
21
20
2-1
2-2
…
Se b0, b1, b2, etc., são os bits que se coloca em cada posição, a quantidade representada valerá:
…… b424 + b323 + b222 + b121 + b020 + b-12-1 + …….
Para evitar a representação mediante o somatório, adota-se a convenção de separar mediante vírgulas
as casas 20 e 2-1, de tal modo que a representação fique:
…… b4 b3 b2 b1 b0 b-1 …….
Em que bI = 0 ou 1.
Exemplo: o número binário 10011,01 representa a quantidade:
…… 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 + 0 x 2-1 + 1 x 2-2 …….
SISTEMA OCTAL
No sistema octal ou sistema de base 8, cada casa vale 8 vezes a que está a sua direita, e os símbolos
utilizados são: 0, 1, 2, 3, 4, 5, 6 e 7.
Exemplo o número octal 4701 representa a quantidade decimal 2497.
Designaremos por Bi cada número deste conjunto ordenado, no qual o sub-índice i corresponde ao
número da casa que está ocupando. Cada casa vale oito vezes aquela que está imediatamente a sua
direita. Desta forma, teremos que, se o valor da primeira casa da direita for 80, a segunda valerá 80 x 8 =
81, e assim consecutivamente para a esquerda. Os valores das casas ficam claros no seguinte esquema:
…
86
85
84
83
82
81
80
8-1
8-2
…
Se b0, b1, b2, etc., são os números que se coloca em cada posição, a quantidade representada valerá:
…… b484 + b383 + b282 + b181 + b080 + b-18-1 + …….
Para evitar a representação mediante o somatório, adota-se a convenção de separar mediante vírgulas
as casas 80 e 8-1, de tal modo que a representação fique:
…… b4 b3 b2 b1 b0 b-1 …….
Em que bI = 0,1,2,3,4,5,6, ou 7.
Exemplo: o número octal (4701)8 representa a quantidade: (2497)10
…… 0 x 84 + 4 x 83 + 7 x 82 + 0 x 81 + 1 x 80 + 0 x 8-1 + 0 x 8-2 …….
SISTEMA HEXADECIMAL
No sistema hexadecimal ou sistema de base 16, cada casa vale dezesseis vezes a que está a sua direita, e
os símbolos utilizados são: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F, onde A equivale a dez, B equivale a
onze e assim consecutivamente até F que equivale a quinze, no sistema decimal.
Exemplo o número hexadecimal A17,B9 representa a quantidade:
A x (16)210 + 1 x (16)110 + 7 x (16)010 + B x (16)-110 + 9 x (16)-210
A representação do conjunto dos símbolos deste sistema pode realizar-se mediante grupos de quatro
bits, em que cada símbolo se faz corresponder com sua representação binária:
(0000)…………………………0
(0001)…………………………1
(0010)…………………………2
(0011)…………………………3
(0100)…………………………4
(0101)…………………………5
(0110)…………………………6
(0111)…………………………7
(1000)…………………………8
(1001)…………………………9
(1010)…………………………A
(1011)…………………………B
(1100)…………………………C
(1101)…………………………D
(1110)…………………………E
(1111)…………………………F
Desta forma, o nosso número A17,B9 ficaria em binário:
101000010111,10111001
É possível considerar, do conjunto de símbolos hexadecimais representados em binário, aqueles que
correspondem a um sistema decimal codificado em binário. Em tal caso, a expressão binária dos dígitos
A, B, C, D, E, F não teria significado.
TRANSFORMAÇÕES NUMÉRICAS
BINÁRIO EM DECIMAL
Já foi visto quando da explicação do sistema binário.
Exemplo: 11001
1 x 24 + 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 16 + 8 + + 0 + 0 + 1 = 25
DECIMAL EM BINÁRIO
Existem duas maneiras de efetuarmos as conversões de números binários para números decimais.
a) Por subtração da potência de 2 imediatamente inferior ao decimal.
Exemplo: 197
o binário será: 1
1
27
27
197 – 128 = 69
69 – 64 = 5
5– 4 = 1
1– 1 = 0
26
22
20
0
26
1
23
0
25
0
24
0
22
1
21
20
(197)10 = (11000101)2
b) Mediante divisões sucessivas por dois, tomando-se os restos das divisões no sentido ascendente.
Exemplo1: 197
197
2
1
98
2
0
49
2
1
24
2
0
12
2
0
6
2
0
3
2
1
1
2
1
0
Exemplo 2: 943
943 2
1
471
2
1
235
2
1
117
2
1
58
2
0
29
2
1
14
2
0
7
2
1
3
2
1
1
2
1
0
(943)10 = (1110101111)2
BINÁRIO EM OCTAL
Divide-se o número em grupos de três bits, a partir da direita, substituindo-se tais grupos pelos símbolos
octais correspondentes. Quando o número for fracionário, deve-se começar a divisão em grupos de três,
a partir da vírgula, em ambas as direções.
Exemplo: 101001111
(101001111)2
100100111
(100100111)2
101
( 5
001
1
111
7)8 =
5178
( 4
100
4
100 111
7)8 =
4478
Se a divisão em grupos de três deixar os grupos extremos com menos de três dígitos, completá-los com
zeros.
1010011
1
010
011
001
010
( 1
2
011
3)8
(1010011)2
(1010011)2 = (123)8
OCTAL EM BINÁRIO
Usa-se o processo inverso ao anterior.
Exemplo: (327)8
3
2
7
011
010
111
(327)8 =
(011010111)2
DECIMAL EM OCTAL
Para efetuarmos as conversões de números decimais em números octais realizaremos esta operação
mediante divisões sucessivas por oito, tomando-se os restos das divisões no sentido ascendente.
Exemplo1:
(3964)10
3964
8
4
495
8
7
61
8
5
7
(3964)10 = (7574)8
Exemplo 2: (943)10
943
8
7
117
8
5
14
8
6
1
(943)10 = (1657)8
OCTAL EM DECIMAL
Já foi visto quando da explicação do sistema octal.
Exemplo: 1657
1 x 83 + 6 x 82 + 5 x 81 + 7 x 80 = 512 + 384 + 4 0 + 7 = 943
BINÁRIO EM HEXADECIMAL
Divide-se o número em grupos de quatro bits, a partir da direita, substituindo-se tais grupos pelos
símbolos hexadecimais correspondentes. Quando o número for fracionário, deve-se começar a divisão
em grupos de quatro, a partir da vírgula, em ambas as direções.
Exemplo:
11110001
1111 0001
(11110001)2
(F
1)16
=
F116
10010011
1001 0011
(10010011)2
(9
3)16
=
9316
Se a divisão em grupos de quatro deixar os grupos extremos com menos de quatro dígitos, completá-los
com zeros.
101011
10
1011
0010 1011
(101011)2
(2
B)16
(101011)2 = (2B)16
HEXADECIMAL EM BINÁRIO
Usa-se o processo inverso ao anterior.
Exemplo: A56B
(A56B)16
A
5
6
B
1010
0101
0110
1011
=
(1010010101101011)2
HEXADECIMAL EM DECIMAL
Usa-se o mesmo sistema para transforma binário em decimal, com a diferença entre base 2 para base
16.
Exemplo:
A6B
A
6
B
10 x 16 2 +
6 x 16 1 +
11 x 16 0
11
=
2560 + 96 +
(A6B)16 =
(2667)10
DECIMAL EM HEXADECIMAL
=
(2667)10
Semelhante às transformações de decimal para binário, com divisões sucessivas pelo número 16.
Exemplo 1: 273610
2736 16
0
mas,
171
16
11
10
16
10
0
(10)10 =
(A)16
(11)10 =
(B)16
então:
(2736)10
Exemplo 2: 31810
=
318
16
14
19
16
3
1
16
1
0
(AB0)16
mas, (14)10 = (E)16
então:
(318)10 =
(13E)16
OCTAL EM HEXADECIMAL
Converte-se primeiro o número octal para binário através do sistema onde divide-se o número em
grupos de três bits, a partir da direita, substituindo-se tais grupos pelos símbolos octais
correspondentes. Quando o número for fracionário, deve-se começar a divisão em grupos de três, a
partir da vírgula, em ambas as direções. Após este primeiro procedimento agrupa-se o número binário
em grupos de quatro dígitos da direita para a esquerda e realiza-se a conversão de binário para
hexadecimal conforme sistema já mencionado.
Exemplo 1: 1738
(001111011)2 001
111
011
( 1
7
(001111011)2
001111011
(01111011)2
Exemplo 2: 4478
(100100111)2 100
(100100111)2 ( 4
000100100111
3)8 =
( 7
B)16 =
7B16
100
4
111
7)8 =
4478
1738
(1
2
7)16 = 12716
HEXADECIMAL EM OCTAL
Usa-se o processo inverso ao anterior.
Exemplo: (327)16
3
2
7
0011
0010
0111
(327)16=(001100100111)2
(1447)8
001
1
(327)16
100
4
100
4
111
7
(1447)8
OPERAÇÕES NUMÉRICAS
ADIÇÃO
ADIÇÃO BINÁRIA
Como se sabe, no sistema decimal, quando se quer somar 9 com 1, o resultado é sempre 0 e vai 1, ou
seja, é igual a 10. No sistema binário, ocorre o mesmo quando se soma 1 com 1. O resultado é 0 e vai 1,
ou seja 10. As regras para a adição binária são as seguintes:
0
0
1
1
Exemplos:
+
+
+
+
0
1
0
1
=
=
=
=
0
1
1
0 e vai 1 ( este resultado é escrito 10, mas diz-se “ um zero”.
a)
b)
1010 +
111
binário
decimal
1010
10
+ 0111
+
7
-------------------------------10001
17
1010
+
101
binário
decimal
1010
10
+ 0101 +
5
-----------------------------1111
15
=
=
ADIÇÃO HEXADECIMAL
Segue as mesmas regras usadas na adição binária e decimal. É preciso não confundir a soma
hexadecimal (16 símbolos) – com a decimal (10 símbolos). No sistema decimal 9 mais 2 é igual a 11, mas
no sistema hexadecimal é B.
Uma regra que deve ser seguida é a seguinte: ao serem somados dois números hexadecimais, se o
resultado for maior que 15, subtrai-se 16 deste valor, coloca-se o resto como resultado e com
ocorrência de tantos “vai um” quantos forem os múltiplos de 16 que entraram na subtração.
Exemplos:
4B2C
+
+
1234 =
4B2C
1234
5D60 ou seja,
C + 4 = 12 + 4 = 16 – 16 = 0 e “ vai um”
1+2+3=6
B+2=D
4+1=5
SUBTRAÇÃO
SUBTRAÇÃO BINÁRIA
Pode ser feita por soma de complemento desprezando-se o estouro.
No sistema decimal, para se achar o complemento de um número procede-se da seguinte forma:
Complemento de 733
1000 -
733
=
267
Assim, o número 267 é o complemento de 733.
Por exemplo:
934 – 173 = 761
ou fazendo-se pelo complemento do número 173
1000 -
173
=
827
e somando-se
934 +
827 =
1761
desprezando-se o estouro, teremos o resultado de
761.
Uma regra prática para se achar o complemento de um número binário é inverter o valor dos dígitos, ou
seja, trocar todos os dígitos 1 por 0, e todos os dígitos 0 por 1, e, ao final, somar 1 ao número obtido
anteriormente.
Exemplo1:
Achar o complemento de
1010
Invertê-lo
Somar 1
0101
1
+
0110
Exemplo2:
Achar o complemento de
11011
Invertê-lo
Somar 1
00100
1
+
00101
Exemplo3:
Subtrair
Inverte-se o segundo
Soma-se 1
1101 1011
+
0100 =
1
1100
soma-se o primeiro
1101
com o segundo invertido + 1100
11001
Despreza-se o estouro e obtêm-se o resultado
1001
OBS: Sempre que o tamanho do subtraendo for menor que o minuendo, acrescenta-se zeros à esquerda
do número (subtraendo), antes de invertê-lo.
SUBTRAÇÃO HEXADECIMAL
Na subtração hexadecimal, procedemos da mesma forma como fazemos na subtração decimal,
considerando-se, é claro, que o sistema hexadecimal tem 16 símbolos. Sempre que não pudermos
subtrair um número de outro, ou seja, quando o minuendo é menor que o subtraendo, emprestamos 1
do número vizinho à esquerda.
Este 1 emprestado tem valor de 16, assim como em decimal este 1 emprestado teria valor de 10.
Somando ao minuendo e subtraído ao subtraendo, obtemos o resultado.
Exemplo:
8A8
-
-
1FA=
8A8
1FA
6AE
Como o número 8 é menor que A, emprestamos 1 do vizinho que passa a valer 9. Este 1 emprestado
passa a valer 16 que somado a 8 dá 24.
Subtrai-se o subtraendo A = 10 de 24, obtendo-se 14, ou seja, E. Como 9 é menor que F, emprestamos 1
do vizinho, que passa a valer 7. Soma-se 16 ao 9, dando 25, menos F obtém-se A.
E, finalmente, 7 menos 1 = 6.
REPRESENTAÇÃO DE NÚMEROS INTEIROS
Os computadores digitais utilizam principalmente quatro métodos para representar números inteiros:
módulo de sinal (MS);
complemento de 1 (C-1);
complemento de 2 (C-2);
excesso de 2 elevado a N-1.
Nessas representações de números utiliza-se o sistema binário e considera-se que temos um número
limitado de dígitos para cada dado numérico. Esse número de dígitos disponível é representado por N.
MÓDULO DE SINAL (MS)
Neste sistema de representação o bit que está situado mais a esquerda representa o sinal, e o seu valor
será:
0 para o sinal +; e
1 para o sinal -.
Os bits restantes representam o módulo do número.
Exemplo:
representar 10 e –10
Limitação de 8 bits (N=8)
10
0
0001010
-10
1
0001010
nº
sinal
módulo
nº
sinal
módulo
Denomina-se AMPLITUDE ou FAIXA de representação num determinado método o conjunto de
números que podem ser nele representados.
Para o sistema módulo de sinal, a faixa de representação para N dígitos é de:
- 2 N-1 + 1 <= X <= + 2 N-1 - 1
Para oito bits a faixa é:
- 127 <= X <= +127
Para dezesseis bits a faixa é: - 32767 <= X <= + 32767
Para trinta e dois bits a faixa é:
- 2147483647 <= X <= + 2147483647
Vantagem: possuir faixa simétrica.
Inconveniência: 2 representações para o número 0.
Para 8 bits o 0 tem as seguintes representações:
00000000 (+0)
10000000 (-0)
COMPLEMENTO DE 1 (C – 1)
Este sistema de representação também utiliza o bit mais à esquerda para o sinal, correspondendo o 0 ao
sinal + e o 1 ao sinal -. Para os números positivos, os N- 1 bits da direita representam o módulo. O
simétrico de um número positivo é obtido pelo complemento de todos os seus dígitos (trocando 0 por 1
e vice-versa) incluindo o bit de sinal.
Exemplo: representar 10 e –10
Limitação de 8 bits (N=8)
10
0
0001010
nº
sinal
módulo
Número – 10 é o complemento do seu simétrico
-10
1
1110101
nº
sinal
módulo
Neste caso a faixa de representação é
- 2 N-1 + 1 <= X <= + 2 N-1 - 1
Para oito bits a faixa é:
- 127 <= X <= +127
Para dezesseis bits a faixa é: - 32767 <= X <= + 32767
Para trinta e dois bits a faixa é:
- 2147483647 <= X <= + 2147483647
Vantagem: possuir faixa simétrica.
Inconveniência: 2 representações para o número 0.
Para 8 bits o 0 tem as seguintes representações:
00000000 (+0)
10000000 (-0)
COMPLEMENTO DE 2 ( C – 2)
Este sistema de representação utiliza o bit mais à esquerda para o sinal, correspondendo o 0 ao sinal + e
o 1 ao sinal -. Para os números positivos, os N-1 bits da direita representam o módulo, igualmente ao
MS e C - 1.
O simétrico de um número é obtido em dois passos:
1º passo – obtém-se o complemento de todos os bits do número positivo (trocando 0 por 1 e vice-versa)
incluindo o bit de sinal, isto é, executa-se o complemento de 1;
2º passo – ao resultado obtido no primeiro passo, soma-se 1 (em binário), desprezando o último
transporte, se houver.
Exemplo: complemento de 2 dos números 10 e –10
Limitação de 8 bits (N=8)
10
0
0001010
nº
sinal
módulo
Número – 10
1º passo: complemento de 1
-10
1
1110101
nº
sinal
módulo
2º passo:
1110101
+
1
1110110
Neste caso a faixa de representação é
- 2 N-1 + 1 <= X <= + 2 N-1 - 1
Para oito bits a faixa é:
- 128 <= X <= +127
Para dezesseis bits a faixa é: - 32768 <= X <= + 32767
Para trinta e dois bits a faixa é:
- 2147483648 <= X <= + 2147483647
Vantagem: uma única representação para o número 0.
Para 8 bits teremos:
Nº 0
00000000 (+0)
Nº -0 passo 1
11111111 (-0)
Passo 2
1
100000000
estouro desprezado
Logo 0 e –0 tem a mesma representação.
EXCESSO DE 2 ELEVADO A N - 1
O método de representação em excesso não utiliza nenhum bit para o sinal , de modo que todos os bits
representam um módulo ou valor. Esse valor corresponde ao número representado mais um excesso,
que para N bits é igual a 2 elevado a N – 1.
Exemplo: para 8 bits o excesso é 128 ( 27 = 128), logo
o número 10 é representado por 10 + 128 = 138; e
o número –10 é representado por – 10 + 128 = 118.
O número 10 é
10001010
O número – 10 é
01110110
Neste método o número 0 tem uma única representação, que para 8 bits corresponde a: número 0 (0 +
128) = 10000000
Neste caso a faixa de representação é assimétrica ( o que é inconveniente) e é dada por:
- 2 N-1 + 1 <= X <= + 2 N-1 - 1
Para oito bits a faixa é:
- 128 <= X <= +127
Para dezesseis bits a faixa é: - 32768 <= X <= + 32767
Para trinta e dois bits a faixa é:
- 2147483648 <= X <= + 2147483647
É interessante observar que todo o número representado em excesso é igual a sua correspondente
representação em complemento de 2, mas com o 1º dígito da esquerda trocado.
SOMA EM COMPLEMENTO
SOMA EM COMPLEMENTO DE 1 ( C – 1)
Na aritmética de complemento de 1, dois números são somados da mesma forma que na representação
binária. Com a diferença que, na ocorrência de transporte (carry) na soma parcial dos bits mais à
esquerda, este transporte será somado ao resultado.
Exemplo: somar os valores 10 e – 3 em complemento de 1, para 8 bits
10 em complemento de 1 é
00001010
(10)
- 3 em complemento de 1 é
11111100
(-3)
somando
1 00000110
carry
Observe que houve carry. Este carry deve ser somado ao resultado obtido. Vejamos:
00000110
+
1
00000111 (7) que é o resultado da operação.
SOMA EM COMPLEMENTO DE 2 ( C – 2)
Na aritmética em complemento de 2, o processo é idêntico ao de complemento de 1, mas,
desprezando-se o carry, se houver.
Exemplo: somar os valores 10 e – 3 em complemento de 2, para 8 bits
10 em complemento de 2 é
- 3 em complemento de 2 é
somando
00001010
11111101
1 00000111
carry
(10)
(-3)
(7)
Observe que houve carry. Este carry deve ser desprezado.
Lista de exercícios:
Execute as seguintes transformações de base:
1. Binário em decimal
a. (1010111)2
b. (11111111)2
c. (1011011011)2
d. (0100001)2
e. (110011)2
(
(
(
(
(
)10
)10
)10
)10
)10
f. (1000110001)2
g. (111000111)2
h. (1100110011)2
i. (00100100)2
j. (10101010)2
(
(
(
(
(
)10
)10
)10
)10
)10
2. Decimal em binário
a. (193)10
b. (3057)10
c. (285)10
d. (630)10
e. (986)10
(
(
(
(
(
)2
)2
)2
)2
)2
f. (900)10
g. (815)10
h. (2929)10
i. (1500)10
j. (152)10
(
(
(
(
(
)2
)2
)2
)2
)2
)8
)8
)8
)8
)8
f. (1110000100)2
g. (1100101111)2
h. (101101110001)2
i. (10111011100)2
j. (10011000)2
(
(
(
(
(
(
(
(
(
(
)2
)2
)2
)2
)2
f. (032)8
g. (756)8
h. (903)8
i. (512)8
j. (707)8
(
(
(
(
(
)2
)2
)2
)2
)2
(
(
(
(
(
)8
)8
)8
)8
)8
f. (900)10
g. (815)10
h. (2929)10
i. (1500)10
j. (152)10
(
(
(
(
(
)8
)8
)8
)8
)8
3. Binário em octal
a. (11000001)2
b. (101111110001)2
c. (100011101)2
d. (1011110110)2
e. (1111011010)2
(
(
(
(
(
4. Octal em binário
a. (1024)8
b. (102)8
c. (214)8
d. (523)8
e. (7700)8
5. Decimal em octal
a. (193)10
b. (3057)10
c. (285)10
d. (630)10
e. (986)10
)8
)8
)8
)8
)8
6. Octal em decimal
a. (1024)8
b. (102)8
c. (214)8
d. (523)8
e. (7700)8
(
(
(
(
(
)10
)10
)10
)10
)10
f. (032)8
g. (756)8
h. (903)8
i. (512)8
j. (707)8
(
(
(
(
(
)10
)10
)10
)10
)10
7. Binário em hexadecimal
a. (1010111)2
b. (11111111)2
c. (1011011011)2
d. (0100001)2
e. (110011)2
(
(
(
(
(
)16
)16
)16
)16
)16
f. (1000110001)2
g. (111000111)2
h. (1100110011)2
i. (00100100)2
j. (10101010)2
(
(
(
(
(
)16
)16
)16
)16
)16
8. Hexadecimal em binário
a. (AB9)16
b. (1F3)16
c. (15A)16
d. (523)16
e. (401)16
(
(
(
(
(
)2
)2
)2
)2
)2
f. (FF0FF)16
g. (ABC56)16
h. (90)16
i. (5D1E2)16
j. (27E7)16
(
(
(
(
(
)10
)10
)10
)10
)10
f. (FF0FF)16
g. (ABC56)16
h. (90)16
i. (5D1E2)16
j. (27E7)16
(
(
(
(
(
)2
)2
)2
)2
)2
9. Hexadecimal em decimal
a. (AB9)16
b. (1F3)16
c. (15A)16
d. (523)16
e. (401)16
(
(
(
(
(
)10
)10
)10
)10
)10
10. Decimal em hexadecimal
a. (193)10
b. (3057)10
c. (285)10
d. (630)10
e. (986)10
(
(
(
(
(
)16
)16
)16
)16
)16
f. (900)10
g. (815)10
h. (2929)10
i. (1500)10
j. (152)10
(
(
(
(
(
11. Octal em hexadecimal
a. (1024)8
b. (102)8
c. (214)8
d. (523)8
(
(
(
(
)16
)16
)16
)16
f. (032)8
g. (756)8
h. (903)8
i. (512)8
(
(
(
(
)16
)16
)16
)16
)16
)16
)16
)16
)16
e. (7700)8
(
)16
j. (707)8
)8
)8
)8
)8
)8
f. (FF0FF)16
g. (ABC56)16
h. (90)16
i. (5D1E2)16
j. (27E7)16
(
)16
12. Hexadecimal em octal
a. (AB9)16
b. (1F3)16
c. (15A)16
d. (523)16
e. (401)16
(
(
(
(
(
(
(
(
(
(
)8
)8
)8
)8
)8
Execute as seguintes operações aritméticas
1. Adição binária
a.
b.
c.
d.
e.
1010100 + 10101 =
10011101 + 1001 =
101 + 1100111 =
111 + 1111 =
10001 + 1101 =
f.
g.
h.
i.
j.
11010 + 111001 =
10101010 + 100100100 =
1100110011 + 10101010 =
101010000 + 1010110 =
111000111 + 1001111100 =
f.
g.
h.
i.
j.
509 + 9FF32 =
9087 + ABC234 =
ABD + 1245 =
1A2B3C + 9684564 =
59 + 99 =
f.
g.
h.
i.
j.
1111 – 111 =
10001 – 1101 =
1100110011 – 10101010 =
101010000 – 1010110 =
111 – 111 =
2. Adição hexadecimal
a.
b.
c.
d.
e.
FFAA + EDE =
103 + FAFF =
9999 + 6666 =
ABCDE + 3456 =
98989 + 76896 =
3. Subtração binária
a.
b.
c.
d.
e.
1000000 – 111 =
1011 – 1010 =
101111 – 101 =
11001 – 1101 =
1011000 – 1011 =
4. Subtração hexadecimal
a. FE123 – ABCD =
b. AFBCD – A123F =
c. 5985 – ABC =
d. FEFE – AAAF =
e. 1045 – A99 =
f. 9834 – 2349 =
g. A123B – 456 =
h. 122345 – 87FF =
i. 72992 – AB45 =
j. FFAAFF – AFDE =
Represente para 8 bits, em MS, complemento de 1 e complemento de 2 os seguintes decimais:
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
33 e –33
25 e –25
100 e –100
127 e –127
1 e –1
18 e –18
78 e –78
29 e –29
512 e –512
81 e –81
MS
(C – 1)
(C – 2)
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
_______________________________________________________
Some em (C – 1) e (C – 2), os seguintes decimais, representando-os em 8 bits:
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
17 + 33 =
127 + (-27) =
15 + (-103) =
70 + 70 =
–13 + 96 =
34 + (-20) =
25 + 15 =
–29 + 19 =
55 + 66 =
127 + (-128) =
(C – 1)
(C – 2)
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Download