Representações de
caracteres
Sistemas de Numeração
• A necessidade de contar é algo que acompanha o
ser humano desde tempos imemoriais.
Sistemas de Numeração
• Usando o polegar para indicar em cada dedo a
falange, falanginha e falangeta, e assim, cada dedo
podia contar 3 números, possibilitando a contagem
de 12 números em cada mão.
Sistemas de Numeração
• A posição do algarismo no número indica o valor
que ele representa.
Sistemas de Numeração
• Sistema de numeração na base 10
Sistemas de Numeração
• Sistema de numeração na base 5
Sistemas de Numeração
• Sistema de numeração na base 2
Sistemas de Numeração
• Sistema de numeração na base 16
Sistemas de Numeração
• Sistema de numeração na base 16
Representação de letras
As letras são representadas como
números dentro da memória.
 Existem vários padrões para associar
letras a números:




ASCII
BAUDOT
ECMA LATIN 1
 etc.
- IBM 850
- EBCDIC
- UNICODE
ASCII

Alguns códigos (base 16)

00 a 1F
controle de equipamentos
Ex. 0D - fim de linha (CR - carriage return)
 Ex. 0A - passar para próxima linha (LF - line feed)





20 - espaço em branco
30 a 39 - dígitos de 0 a 9
41 a 5A - alfabéticos maiúsculos
61 a 7A - alfabéticos minúsculos
UNICODE
Representação ASCII é insuficiente para
todos os alfabetos
 UNICODE - código que englobará todas
as línguas -> internacionalização de
programas




16 bits
início dele (256 posições) - igual ao ISO-Latin
básico - usado no Windows do Brasil
em particular 128 primeiras = ASCII
Números de Ponto Flutuante em
Base 10



Números de ponto flutuante permitem que
números muito grandes e muito pequenos sejam
representados usando poucos dígitos, às custas
da precisão.
Grosseiramente falando, a precisão é
determinada pelo número de dígitos
significativos, e o intervalo é determinado pelo
número de dígitos no expoente.
Ex. 6,023 x 1025
Normalização

25410 pode ser representado em ponto flutuante:

254 x 100
 25,4 x 101
 2,54 x 102
 etc...
Os números de ponto flutuante estão
normalmente normalizados, em que o ponto é
localizado em uma só posição possível para um
número dado.
 0,254 x 103 é a forma mais usada

Exemplo em ponto flutuante
Representar o número 0,254 x 103 na
base 8
 Formato do resultado:

 Normalizado
 Sinal
(0 - positivo, 1 = negativo)
 Expoente: 3 bits, usando excesso de 4
 4 dígitos octais
 Vamos tentar resolver ?
Solução do exercício (1)

Transforme o número em octal, usando o
método da divisão. Para poupar trabalho,
converta o número 254 x 100 e assim você
não precisará converter as decimais pelo
método da multiplicação.

Você achará o número 376 x 80
Solução do exercício (2)

Normalize

3768 x 80 = 0,376 x 83
O expoente é 3, com excesso de 4 = 7
 Então o resultado final é
esquematicamente
+7.3760
ou seja, em binário
0 111 011 111 110 000

Números em ponto flutuante em
binário
Formato padronizado: IEEE 754
 1 bit de sinal
 8 bits de expoente, deslocamento de 127
 normalização: mantissa = 1,xxxxx



1.0 <= mantissa < 2
mantissa “virtual” de 24 bits


23 representados
o mais significativo escondido = 1
Conversão PF para decimal


Sinal -> número é positivo ou negativo
Expoente: subtrair 127


se positivo, só eliminar o bit 7 e somar 1
Mantissa: considerar que o número seja
1,abcde...
 Multiplique a por 1/2
 Multiplique b por 1/4
 c por 1/8 etc...
 some
Exemplo
0 10000110 10100000000000000000
 0 -> número é positivo
 10000101 - 01111111 = 00000110 = 610


mantissa = 1,1010000...

1 + 1 x 1/2 + 0 x 1/4 + 1 x 1/8 = 1,62510

resposta: 1,625 x 106
ou
0,1625 x 107
Conversão binária para PF
Converta o valor absoluto do número
decimal para binário, como já foi visto
 Normalize o número para que a mantissa
seja algo como 1,xxxxxx





assim será gerado o expoente
remova este primeiro bit 1 da mantissa
Some o expoente a 127
O número final terá a forma

1 bit Sinal 8 bits Expoente 23 Mantissa
Exemplo

13,5 decimal

13 = 11012

0,5 = 0,12

logo: 1101,1 na base 2
normalizo: 1,1011 x 23
expoente do ponto flutuante -> somar 127
Em ponto flutuante
 0 10000010 10110000000000000000000



Convenções especiais em PF

0 = seria impossível (já que o bit mais
significativo seria sempre 1).




Elimina-se o expoente -127
0 = 00000000000000000000000000000000
ou 10000000000000000000000000000000
Outros casos:

+ infinito e - infinito


(expoente 11111111, mantissa 0)
NaN (not a number)
S
EXP
MANTISSA
(a) +1.101 x 25
0 10000100 1010000 00000000 00000000
(b) -1.01011 x 2-126
1 00000001 0101100 00000000 00000000
(c) +1.0 x 2127
0 11111110 0000000 00000000 00000000
(d) +0
0 00000000 0000000 00000000 00000000
(e) -0
1 00000000 0000000 00000000 00000000
(f) +infinito
0 11111111 0000000 00000000 00000000
(g) +2-128
0 00000000 0100000 00000000 00000000
(h) +NaN
0 11111111 0110111 00000000 00000000
Operações aritméticas:
problemas de precisão e erro


Suponhamos representar um número com 5
algarismos na mantissa.
Somar (idealmente): 987654321 + 100432

aproximando: 0,98765 x 109 + 0,10043 x 106
para poder somar, tenho que renormalizar o
de menor expoente

0,98765 x 109 + 0,00010 x 109

resposta: 0,98775 x 109

A precisão de PF é variável:
menor número, maior precisão
Nota: Existe um “menor número representável”
Download

Sistemas de Numeração