Você está na página 1de 77

Introdução Números naturais Números inteiros Números reais Referências

Representação de Dados

Prof. Eliezer Soares Flores


e-mail: eliezerflores@unipampa.edu.br

1 / 77
Introdução Números naturais Números inteiros Números reais Referências

Sumário

1 Introdução;

2 Números naturais;

3 Números inteiros;

4 Números reais;

5 Referências.

2 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

A tecnologia utilizada em sistemas digitais (e.g., computadores,


smartphones, etc) permite processar somente 0s e 1s.
Assim, deve ser viável converter a informação (usualmente na
base decimal) para binário e vice-versa.

3 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

A base decimal ou base 10 é formada pelos dı́gitos 0, 1, 2, 3,


4, 5, 6, 7, 8 e 9.
A base binária ou base 2 é formada pelos dı́gitos 0 e 1.

4 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

Terminologia:
os dı́gitos binários 0 e 1 são chamados de bits (binary digits -
dı́gitos binários).

5 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

Sistemas digitais devem representar números naturais, inteiros


e reais como variáveis binárias que podem assumir apenas dois
valores (i.e., 0 ou 1).
Um conjunto (i.e., vetor) de variáveis binárias pode ser utilizado
para representar mais do que dois valores.

6 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

Terminologia:
um conjunto de variáveis binárias é conhecido como palavra.

7 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

Figura 1: Representação de uma variável binária e de uma palavra de 3


bits. Quantos valores distintos podem ser representadas com 3 bits?

8 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

Terminologia:
o bit mais à esquerda de uma palavra é conhecido como MSB
(most significant bit - bit mais significativo) e o bit mais à direita
como LSB (least significant bit - bit menos significativo).

9 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

De uma forma geral, uma palavra de k bits pode representar


2k valores distintos.
Um byte signfica 8 bits (i.e., B = 8b).

10 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

1kb = 1024b (210 b).


1Mb = 1024kb (220 b).
1Gb = 1024Mb (230 b).
1Tb = 1024Gb (240 b).

11 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

1kB = 1024B (210 B).


1MB = 1024kB (220 B).
1GB = 1024MB (230 B).
1TB = 1024GB (240 B).

12 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

Suponha que um determinado sistema precise representar qua-


tro direções (i.e., quatro valores distintos): N, S, L, O.
Sabe-se que uma palavra de k bits pode representar 2k valores
distintos.

13 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

Assim, para representar quatro valores distintos temos que:

4 ≤ 2k
log(4) ≤ log(2k )
log(4) ≤ k log(2)
log(4)
≤k
log(2)
log(4)
k≥
log(2)
k ≥2

14 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

Resumindo, precisamos de pelo menos dois bits para representar


quatro valores distintos.
Um exemplo de codificação é dado pelas seguintes associações:

N → 00;
S → 01;
L → 10;
O → 11.

15 / 77
Introdução Números naturais Números inteiros Números reais Referências

Introdução

De uma forma geral, a quantidade mı́nima de bits para repre-


sentar N valores distintos é:
 
log(N)
k= ,
log(2)

onde dxe denota o menor inteiro y que satisfaz a relação y ≥ x.

16 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

NÚMEROS NATURAIS.

17 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Um número natural n com d dı́gitos em uma base β é descrito


por:
d−1
X
n= ak β k
k=0

Note que os dı́gitos ak assumem valores no intervalo [0, β − 1].

18 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Por exemplo, 789 na base decimal:


n = 789;
d = 3;
β = 10;
ak ∈ [0, 9].
(789)10 = 7 × 102 + 8 × 101 + 9 × 100 .
| {z } | {z } | {z }
=7×100=700 =8×10=80 =9×1=9

19 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

dı́gitos 7 8 9
pesos 100 10 1

(789)10 = 7 × 100 + 8 × 10 + 9 × 1.
| {z } | {z } | {z }
=700 =80 =9

20 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

10111 na base binária:


n = 10111;
d = 5;
β = 2;
ak ∈ [0, 1].
(10111)2 = 1 × 24 + 0 × 23 + 1 × 22 + 1 × 21 + 1 × 20 = (23)10 .
| {z } | {z } | {z } | {z } | {z }
=16 =0 =4 =2 =1

21 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

bits 1 0 1 1 1
pesos 16 8 4 2 1

(10111)2 = 1 × 16 + 0 × 8 + 1 × 4 + 1 × 2 + 1 × 1 = (23)10 .
| {z } | {z } | {z } | {z } | {z }
=16 =0 =4 =2 =1

22 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Para a conversão de números naturais da base decimal para a


base binária, divide-se o número sucessivamente por dois.
Os restos das divisões serão os coeficientes das respectivas
potências de dois.

23 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Exemplo: converta o número 23 da base decimal para a base


binária.

24 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Os sistemas de numeração octal e hexadecimal também são


muito utilizados em sistemas digitais.
Isso se deve ao fato de que é fácil realizar a conversão entre
estes sistemas e o sistema de numeração binária.

25 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

No sistema octal, cada dı́gito é associdado com um bloco de 3


bits.

26 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Octal Binário
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

27 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

No sistema hexadecimal, cada dı́gito é associado com um bloco


de 4 bits.

28 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Hexadecimal Binário Hexadecimal Binário


0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111

29 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Exemplo: converta 10110111001011 da base binária para as


bases octal e hexadecimal.

30 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Para converter de binário para octal, primeiramente, deve-se


adicionar 0s à esquerda de maneira que o tamanho da palavra
seja múltiplo de 3 bits.
Em seguida, cada bloco de 3 bits é associado com o dı́gito octal
correspondente.

31 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

10110111001011 ↔ |{z}
010 |{z}
110 |{z}
111 |{z}
001 |{z}
011 .
2 6 7 1 3
(10110111001011)2 = (26713)8

32 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

Para converter de binário para hexadecimal, primeiramente,


deve-se adicionar 0s à esquerda de maneira que o tamanho
da palavra seja múltiplo de 4 bits.
Em seguida, cada bloco de 4 bits é associado com o dı́gito
hexadecimal correspondente.

33 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números naturais

10110111001011 ↔ 0010
| {z } 1101
|{z} 1100
|{z} 1011
|{z}.
2 D C B
(10110111001011)2 = (2DCB)16 = 0x2DCB

34 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

NÚMEROS INTEIROS.

35 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

Para representar também números negativos, um bit de sinal


pode ser adicionado à esquerda da palavra.
Esse bit será zero se o número é positivo ou um se o número é
negativo.
Tal representação é conhecida como sinal magnitude (ou sinal
amplitude).

36 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

Exemplo: converta os números 77 e -77 para suas representações


sinal magnitude, realize também o processo inverso.

37 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

(77)10 = (1001101)2
R(+77) = 01001101
R(−77) = 11001101

38 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

bits 0 1 0 0 1 1 0 1
pesos sinal 64 32 16 8 4 2 1

R −1 [R(+77)] = +(64 + 8 + 4 + 1) = +77

39 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

bits 1 1 0 0 1 1 0 1
pesos sinal 64 32 16 8 4 2 1

R −1 [R(−77)] = −(64 + 8 + 4 + 1) = −77

40 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

A limitação da representação sinal magnitude é a existência de


dois padrões de bits para representar o zero.
Uma forma de contornar esse problema é representar os números
binários negativos como o complemento de dois dos números
binários positivos.

41 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

Os números binários positivos são obtidos da mesma forma que


na representação sinal magnitude (i.e., adicionando um zero à
esquerda da palavra).
O complemento de dois de um número binário positivo é obtido
invertendo todos os bits e somando um.

42 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

Um número inteiro z com b bits pode então ser convertido para


decimal através da seguinte equação:
b−2
X
z = −ab−1 2b−1 + ak 2k
k=0

43 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

Exemplo: converta os números 77 e -77 para suas representações


em complemento de dois, realize também o processo inverso.

44 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

(77)10 = (1001101)2
R(+77) = 01001101
R(−77) = 10110010 + 1 = 10110011

45 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

bits 0 1 0 0 1 1 0 1
pesos -128 64 32 16 8 4 2 1

R −1 [R(+77)] = 64 + 8 + 4 + 1 = +77

46 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

bits 1 0 1 1 0 0 1 1
pesos -128 64 32 16 8 4 2 1

R −1 [R(−77)] = −128 + 32 + 16 + 2 + 1 = −77

47 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

Exemplo: represente o número -78 em complemento de dois,


realize também o processo inverso.

48 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

(78)10 = (1001110)2
R(+78) = 01001110
R(−78) = 10110001 + 1 = 10110010

49 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

bits 1 0 1 1 0 0 1 0
pesos -128 64 32 16 8 4 2 1

R −1 [R(−78)] = −128 + 32 + 16 + 2 = −78

50 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

Exemplo: represente o número -64 em complemento de dois,


realize também o processo inverso.

51 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

(64)10 = (1000000)2
R(+64) = 01000000
R(−64) = 10111111 + 1 = 11000000

52 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

bits 1 1 0 0 0 0 0 0
pesos -128 64 32 16 8 4 2 1

R −1 [R(−64)] = −128 + 64 = −64

53 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números inteiros

Considerando palavras de b bits, o menor número que pode ser


. . . 0} = (−2b−1 )10 .
representado em complemento de dois é 1 |00 {z
(b − 1) 0s
O maior número que pode ser representado em complemento
de dois é 0 11 . . . 1} = (2b−1 − 1)10 .
| {z
(b − 1) 1s

54 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

NÚMEROS REAIS.

55 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

Seja f uma palavra com d dı́gitos em uma base β, podemos


descrever um número real r na forma 0, f através da seguinte
equação:
d−1
X
r= ak β −k−1
k=0

Os dı́gitos ak assumem valores no intervalo [0, β − 1].

56 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

Por exemplo, 0,375 na base decimal:


f = 375;
d = 3;
β = 10;
ak ∈ [0, 9].
(0, 375)10 = 3 × 10−1 + 7 × 10−2 + 5 × 10−3 .
| {z } | {z } | {z }
=3×0,1=0,3 =7×0,01=0,07 =5×0,001=0,005

57 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

dı́gitos 3 7 5
pesos 0,1 0,01 0,001

(0, 375)10 = 3 × 0, 1 + 7 × 0, 01 + 5 × 0, 001.


| {z } | {z } | {z }
=0,3 =0,07 =0,005

58 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

0,011 na base binária:


f = 011;
d = 3;
β = 2;
ak ∈ [0, 1].
(0, 011)2 = 0 × 2−1 + 1 × 2−2 + 1 × 2−3 = (0, 375)10 .
| {z } | {z } | {z }
=0 =0,25 =0,125

59 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

dı́gitos 0 1 1
pesos 0,5 0,25 0,125

(0, 011)2 = 0 × 0, 5 + 1 × 0, 25 + 1 × 0, 125 = (0, 375)10 .


| {z } | {z } | {z }
=0 =0,25 =0,125

60 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

O seguinte algoritmo realiza a conversão de um número real


r = 0, f da base decimal para a base binária:
1 Fazer k = 1 e r1 = r .
2 Calcular 2 × rk . Se 2 × rk ≥ 1, fazer ak = 1. Senão, ak = 0.
3 Fazer rk+1 = 2 × rk − ak . Se rk+1 = 0, parar. Senão, fazer
k = k + 1 e voltar ao passo 2.

61 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

Exemplo: converta 0,375 da base decimal para a base binária.

62 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

k rk 2 × rk ak
1 0,375 0,75 0
2 0,75 1,5 1
3 0,5 1 1
0

(0, 375)10 = (0, 011)2 .

63 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

A forma de representação da parte fracionária de números reais


mostrada anteriormente é conhecida como ponto fixo.
Note que além da parte fracionária em ponto fixo, uma palavra
deve representar também a parte inteira do número real.

64 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

Mais bits para representar a parte fracionária implica em menos


bits para representar a parte inteira.
Mais bits para representar a parte inteira implica em menos bits
para representar a parte fracionária.

65 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

Terminologia:
quando um número é muito grande para ser representado dize-
mos que houve um overflow ;
quando um número é muito pequeno para ser representado di-
zemos que houve um underflow.

66 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

Na prática, a faixa de números que podem ser representados


em um esquema baseado em ponto fixo é insuficiente para a
maioria das aplicações.
Para contornar esse problema, números reais são usualmente
representados em ponto flutuante.

67 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

A representação de números reais em ponto flutuante é basica-


mente a versão binária da notação cientı́fica.
A ideia central é representar um número real r = m × 2e pelo
par (m, e):
m é a mantissa de r ;
e é o expoente.

68 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

Os padrões IEEE de ponto flutuante assumem a mantissa na


forma m = ±1, f e o expoente e = g − bias.
Tais esquemas definem quantos bits são usados para representar
f e quantos bits são usados para representar g .

69 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

A linguagem C, por exemplo, adota dois padrões IEEE de ponto


flutuante:
precisão simples (i.e., float) com 32 bits.
precisão dupla (i.e., double) com 64 bits.

70 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

Na precisão simples, o bias é 127 e o formato da palavra é


apresentado abaixo:

71 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

Exemplo: represente -0,75 no padrão IEEE de precisão simples.

72 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

(−0, 75)10 = (0, 11)2 = (−1, 1 × 2−1 )2 .


sinal = 1.
f = 1.
g = e + 127 = (126)10 = (01111110)2 .

73 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

74 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representando números reais

As únicas diferenças da precisão dupla em relação a precisão


simples é que na precisão dupla o bias é 1023, 11 bits são
usados para representar g e 52 bits para representar f :

75 / 77
Introdução Números naturais Números inteiros Números reais Referências

Referências

UYEMURA, J. P. Sistemas digitais: uma abordagem inte-


grada.
PATTERSON, D. A.; HENNESSY, J. L. Organização e pro-
jeto de computadores: a interface hardware/software.

76 / 77
Introdução Números naturais Números inteiros Números reais Referências

Representação de Dados

Prof. Eliezer Soares Flores


e-mail: eliezerflores@unipampa.edu.br

77 / 77

Você também pode gostar