Buscar

AOC_memoria_represe_dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

'\hdticomputadores
Embora os sistemas multiprocessadores com urn pequeno
'i'ilmero de processadores (::;;;64) sejam muito faceis de s~r~~
((}flStruidos, os sistemas com mais processadores sac de dIflCI1
cmplementa~ao. A dificuldade esta na conexao dos processado-
7;:S' It mem6ria. Para resolver esse problema, muitos projetistas
N:ffiDlesmenteahandonaram a ideia da mem6ria compartilhada
:::;:,;nstruiram sistemas com urn grande numero de computado-
.~ interconectados, sem qualquer tipo de memoria comum. Es-
'<S sistemas sac conhecidos como multicomputadores.
Os processadores de urn sistema multicomputador co~uni-
(4m-se por meio do mecanismo de troca de mensagens, malS ou
ili'1.:ilOS como no sistema de correio eletronico, so que a uma ve-
··x:idade muito maior. No caso de sistemas de maior porte, nao e
•12vel estabelecer uma liga~ao de urn processador com todos os
de modo que foram desenvolvidas topologias especiais
:;"'3i.""a esses sistemas, a exemplo das grades 2D e 3D, das arvores
; dos aneis. Como resultado, as mensagens de urn processador
pMU outro as vezes passam por urn ou mais processadores inter-
:I'¢diarios, que simplesmente as roteiam na dire~ao do seu desti-
Apesar disso, 0 tempo medio de chegada de uma mensagem
:::.2t0 passa de alguns microssegundos. Existem em opera~ao sis-
'.emas multicomputadores com cerca de 10.000 processadores.
Considerando-se que os sistemas multiprocessadores sao mais
'xeis de programar e os sistemas multicomputadores mais faceis
.de construir, as pesquisas tern apontado para urn sistema hibrido,
combine em urn so sistema as vantagens de ambos. Tais com-
;:'I.Jwdorestentam dar a ilusao de memoria compartilhada, sem arcar
(om 0 onus de implementa-la diretamente. No Capitulo 8, vamos
'(,har ao assunto dos multiprocessadores e dos multicomputadores.
A memoria e a parte do computador onde os programas e os
Cados sac armazenados. Sem uma mem6ria na qual os proces-
;·adores possam ler ou escrever informa~6es, 0 conceito de com-
p:Hudor digital com programa armazenado nao pode ser
:n.plementado.
de mem6ria mais simples possivel. (Urn dispositivo capaz de
armazenar somente zeros nao implementa 0 conceito de sistema
de mem6ria; e necessario urn minima de dois valores para que
se possam armazenar informa~6es diferentes.) ., .
As vezes se ouve falar que os computadores usam a antrnetI-
ca binaria por causa da sua "eficiencia". 0 que se quer dizer com
isso (embora aqueles que 0 dizem nao imaginem) e que urn s~s-
tema de armazenamento de informa~ao digital e baseado na dIS-
tin~ao entre valores diferentes de alguma grandeza ffsica,. co~o
corrente ou tensao. Quanto mais valores houver a serem IdentI-
ficados, menor sera a separa~ao entre valores adjacentes, e como
conseqiiencia 0 sistema de mem6ria sera menos confi~v~l. N.o
sistema de numeracao binario s6 ha necessidade de se dlstmgUlr
entre dois valores. Conseqiientemente, 0 metodo de codifica~ao
da informa~ao digital em binario e 0 mais confiavel de todos. Se
voce nao estiver familiarizado com 0 conceito de mlmeros bina-
rios, e hora de dar uma olhada no Apendice A.
AI cruns computadores, como os mainframes da IBM, anun-
ciam que sua aritmetica decimal e tao boa quanto a binaria. Na
verdade, as opera~6es decimais sao possiveis porque ness~s
maquinas os dicritos decimais sac armazenados segundo urn co-
e •
digo de quatro bits chamado codigo BCD (Binary Coded DecI-
mal).* Os quatro bits do c6digo pennitem urn total de 16 com-
bina~6es diferentes, sendo que dez dessas combina~6es sac usa-
das para representar cada um dos dfgitos decimais de 0 a 9. As
seis combinac6es restantes nao tern utiliza~ao. Por exemplo, 0
numero 1941 e representado a seguir em decimal (segundo 0
c6digo BCD) e em binario, considerando que ambas as repre-
senta~6es usam 16 bits:
decimal: 0001 1001 0100 0100
binario:00000llllOOll000
No formato decimal, usando dezesseis bits, poderemos armaze-
nar mimeros de 0 a 9999, conseguindo portanto urn total de so-
mente 10.000 combina~6es diferentes, enquanto que se usarmos
os mesmos 16 bits para representar urn numero binario puro, po-
deremos armazenar 65.536 combina~6es diferentes. Par isso as
pessoas dizem que a representa~ao bimiria. e mais efici~nte.
No entanto, considere 0 que acontecena se algum Jovem e
brilhante engenheiro inventasse urn dispositivo eletronico alta-
A unidade basica de mem6ria e 0 digito binario, conhecido
(c'mo bit. Urn bit pode ter 0 valor 0 ou 0 valor 1. Ele e a unidade * Em portugues. Decimal Codificado em Binario. (N. T.)
Endereyo Endereyo 1 celula Endereyo
01 0 0 /I ·1
1 I 1 1 I I
21 2 2 I
3 3 3 I
4 41 4 I
5 51 5 I I
6 61 16 bits
71 71 (C)
8
.. 2 bits ..
9 (b)
10
11
bits-
(a)
mente confiavel, capaz de armazenar diretamente os digitos de-
cimais de 0 a 9, dividindo em 10 intervalos a regUio entre 0 e 10
volts. Quatro desses dispositivos podem armazenar qualquer
numero decimal entre 0 e 9999, podendo representar 10.000
combina~oes diferentes. as dispositivos tambem poderiam ser
usados para armazenar numeros binarios, e, nesse caso, quatro
desses dispositivos poderiam armazenar somente 16 combina-
~oes. Se dispositivos desse tipo existissem, 0 sistema decimal
seria mais eficiente que 0 binario.
A memoria e formada por urn conjunto de celulas (ou posi-
~oes), cada uma das quais podendo guardar uma informa~ao.
Cada celula tern urn mimero associ ado a ela, mimero esse conhe-
cido como endere~o da celula. Epor meio desse numero que os
programas podem referenciar a celula. Se a memoria tiver n ce-
lulas, elas terao enderei;{osde 0 an-I. Todas as celulas de uma
memoria dispoem do mesmo numero de bits. Se uma celula ti-
ver k bits ela podeni armazenar qualquer uma das 2k combina-
~oes possiveis para os bits. A Fig. 2.9 mostra tres organiza~oes
diferentes para uma memoria de 96 bits. Observe que celulas ad-
jacentes tern endere~os consecutivos (por defini~ao).
Os computadores que usam 0 sistema de numera~ao binario
(incluindo aqueles que utilizam a nota~ao octal e/ou a
hexadecimal para numeros binarios) expressam os endere~os de
memoria como numeros binarios. Se urn determinado endere~o
tern In bits, 0 numero maximo de celulas enderes;aveis e de 2'".
Por exemplo, urn endere~o utilizado para referenciar a memoria
da Fig. 2.9(a) precisa de no minimo 4 bits para expressar todos
os numeros binarios entre 0 e II. No entanto, no caso da Fig.
2.9(b) e da Fig. 2.9(c), tres bits de endere~o serao suficientes. a
numero de bits no endere~o determina 0 numero maximo de en-
deres;os que poderao ser referenciados diretamente na memoria,
sendo completamente independente do numero de bits por celu-
la. Tanto uma memoria com 212 celulas de 8 bits cada quanta uma
Computador Bits/celula
Burroughs B1700 1
PC IBM 8
DEC PDP-8 12
IBM 1130 16
DEC PDP-15 18
XDS 940 24
Electrologica X8 27
XOS Sigma 9 32
Honeywell 6180 36
COC3600 48
COC Cyber 60
Fig. 2.10 Ntimero de bits por celula de alguns computadores comerci-
ais de interesse.
outra memoria com 212 celulas de 64 bits cada precis am de 12
bits para representar 0 endere~o da celula.
A Fig. 2.10 mostra 0 numero de bits por celula para algumas
maquinas comerciais.
A celula e a menor unidade enderes;avel em urn computador.
Nos ultimos anos, quase todos os fabricantes de computadores
padronizaram 0 tamanho da celula em 8 bits, chamando essa
celula de byte. Os bytes sao agrupados empalavras. Um com-
putador com uma palavra de 32 bits tem 4 bytes/palavra, enquanto
um computador com uma palavra de 64 bits tem 8 bytes/pala-
vra. A maioria das instru~oes de uma maquina opera sobre pala-
vras, daf a significiincia do conceito. Par exemplo, uma instru-
~ao de soma muito provavelmente vai somar dois valores de 32
bits. Portanto, uma maquina de 32 bits devera ter registradores e
instru~oes para tratar palavras de 32 bits, enquanto uma maqui-
I--------------------------------~
I
I
: Terminal ISDN
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I ,L .
Equipamentos do cliente
f--------------------------------~
I I
, I
I I
, :
,
,
I
I
I,
I
,
,
Paraa rede :
interna da :
concession aria :
do servh;:o :
I I
I I
~-------------------------- I
conexoes sac estabelecidas em nao mais do que 1 segundo, alem
do fato de essas linhas nao precisarem de modem anal6gico e de
serem muito mais confiaveis (menos erros) do que as linhas
anal6gicas. a servi<;;oISDN tern, alem disso, urn conjunto extra
de caracteristicas e de novas op<;;oesnao-disponiveis nos servi-
<;;osque utilizam linhas anal6gicas.
A Fig. 2.40 mostra a estrutura de uma conexao ISDN. A li-
nha fornece, na verdade, urn caminho digital para os dados que
simplesmente transfere bits de urn lado para outro. a significa-
do desses bits e da responsabilidade do transmissor e do recep-
tor. A interface entre 0 equipamento do cliente e 0 equipamento
da companhia prestadora do servi<;;oe feita pelo dispositivo NTI,
com a interface T de urn lado e a interface U do outro. Nos Esta-
dos Unidos, os usuarios do servi<;;oISDN precis am comprar 0
dispositivo NTl. Na maioria dos pafses europeus, esses disposi-
tivos podem ser alugados da companhia telef6nica.
Cada computador usa urn determinado conjunto de caracteres.
No minimo, esse conjunto deve incluir as 26letras maiusculas e
as 26 minusculas do alfabeto ingles, os digitos decimais de 0 a
9, e alguns simbolos especiais, tais como espa<;;o,ponto, sinal de
menos, vfrgula e retorno de carro.
De modo a poder transferir cada urn desses caracteres para 0
computador, atribui-se urn numero a cada urn deles: por exem-
plo, a = 1, b = 2, ... , z = 26, + = 27, - = 28. a mapeamento
dos caracteres em numeros inteiros e eonheeido como codigo de
caracteres. E fundamental que computadores que se comuni-
quem usem 0 mesmo c6digo de caracteres, sob pena de urn nao
entender 0 que 0 outro quer transmitir. Por esse motivo, foram
desenvolvidos c6digos de caracteres padroes. A seguir, vamos
examinar os dois padroes mais importantes para os e6digos de
caracteres.
Urn dos e6digos mais utilizados atualmente e conhecido como
ASCII (American Standard Code for Information Interchan-
ge). Cada caraetere ASCII tern 7 bits, 0 que faz com que 0 c6di-
go represente 128 caracteres no total. A Fig. 2.41 mostra 0 c6di-
go ASCII. as c6digos de 0 a IF (hexadecimal) representam
. caracteres de controle e nao sao impressos.
Muitos dos caracteres de controle ASCn sao voltados para a
transmissao de dados. Por exemplo, uma mensagem pode ser
composta de urn caractere SOH (inicio de cabec;alho), seguido
do cabecalho e de urn caractere STX (inicio de texto), que, par
sua vez: e seguido pelo texto em si, e por urn caractere de ETX
(fim de texto) e pelo caractere EaT (fim de transmissao). Na
pratica, no entanto, as mensagens enviadas atraves das linhas
telef6nicas e das redes sao formatadas de maneira urn pouco di-
ferente da descrita, de modo que os caracteres de controle ASCn
nao sac mais usados com freqiiencia.
A lei de formaC;ao dos demais caracteres ASCII, mais especi-
ficamente os caracteres que serao impressos, e muito simples de
ser entendida se examinarmos diretamente a tabela da Fig. 2.41.
Entre tais caracteres se incluem as letras maiusculas e as letras
minusculas, os dfgitos decimais, os caracteres de pontua<;;ao,e
uns poucos simbolos matem<iticos.
A industria de computadores cresceu mais acentuadamente
nos Estados Unidos, 0 que justifica a ado<;;aodo c6digo ASCII.
Observe que esse c6digo e adequado a lingua inglesa, mas nao e
muito born para os demais idiomas. Por exemplo, 0 frances pre-
cisa de acentos (como na palavrasysteme); 0 alemao precisa usar
com freqiiencia 0 trema (como na palavrafiir), e por ai vai. Al-
guns idiomas europeus tern alguns caracteres que nao foram in-
cluidos no c6digo ASCII, como, por exemplo, 0 caractere 13 do
idiom a alemao, e 0 caractere <I> usado no dinamarques. Alguns
idiomas tern alfabetos completamente diferentes do alfabeto in-
gles (como, por exemplo, 0 russo e 0 arabe), e alguns idiornas
sequer tern alfabeto (0 chines, por exemplo). Na medida em que
os computadores come<;;aram a se espalhar pelos quatro cantos
do mundo, fazendo com que os desenvolvedores de software
precisassem vender seus produtos em pafses onde a maioria dos
usuarios nao falava ingles, houve necessidade de se desenvol-
ver urn c6digo de caracteres mais abrangente do que 0 ASCII.
A primeira tentativa de estender 0 ASCII foi com 0 IS 646.
que incorporou mais 128 caracteres aos ja existentes, transfor-
mando 0 ASCII em urn c6digo de 8 bits, conhecido com Latino
1. Os novos caracteres eram basicamente letras dos alfabetos
latinos, com acento e trema. Em seguida foi desenvolvido 0 pa-
drao IS 8859, que introduziu 0 conceito de pagina de c6digo.
urn conjunto de 256'caracteres especificos para urn determinado
idioma ou grupo de idiomas. a IS 8859-1 corresponde ao c6di-
go Latino 1. a IS 8859-2 trata dos idiomas latinos com raizes
eslavas (como, por exemplo, 0 tcheeo, 0 polones e 0 hungaro).
a IS 8859-3 contem os caracteres necessanos aos idiomas tur-
co, maltes, esperanto e gales, e assim por diante. 0problema com
a metodologia da pagina de c6digo e que 0 software precisa se
Hexa Nome Significado Hexa Nome Significado
0 NUL Null 10 OLE Data Link Escape
1 SOH Start Of Heading 11 DC1 Device Control 1
2 STX Start Of Text 12 OC2 Device Control 2
3 ETX End Of Text 13 DC3 Device Control 3
4 EOT End Of Transmission 14 DC4 Device Control 4
5 ENQ Enquiry 15 NAK Negative AcKnowledgement
6 ACK ACKnowledgement 16 SYN SYNchronous idle
7 BEL BEll 17 ETB End of Transmission Block
8 BS BackSpace 18 CAN CANcel
9 HT Horizontal Tab 19 EM End of Medium
A LF Line Feed 1A SUB SUBstitute
B VT Vertical Tab 1B ESC ESCape
C FF Form Feed 1C FS File Separator
0 CR Carriage Return 10 GS Group Separator
E SO Shift Out 1E RS Record Separator
F SI Shift In iF US Unit Separator
Hexa Carac Hexa Carac Hexa Carac Hexa Carac Hexa Carac Hexa Carac
20 (Space) 30 0 40 @ 50 P 60 , 70 P
21 ! 31 1 41 A 51 Q 61 a 71 q
22 " 32 2 42 B 52 R 62 b 72 r
23 # 33 3 43 C 53 S 63 c 73 s
24 $ 34 4 44 D 54 T 64 d 74 t
25 0/0 35 5 45 E 55 U 65 e 75 u
26 & 36 6 46 F 56 V 66 f 76 v
27
, 37 7 47 G 57 W 67 g 77 w
28 ( 38 8 48 H 58 X 68 h 78 x
29 ) 39 9 49 I 59 Y 69 i 79 Y
2A * 3A 4A J 5A Z 6A j 7A z
2B + 3B , 4B K 5B [ 6B k 7B {
2C 3C < 4C L 5C \ 6C I 7C I
20 - 3D = 40 M 50 ] 60 m 70 }
2E 3E > 4E N 5E
. 6E n 7E
-
2F / 3F ? 4F 0 5F
-
6F 0 7F DEL
?,~)Cupar com qual das paginas esta ativa, alem de ser impossf-
misturar dois ou mais idiomas em urn unico texto e de 0 es-
",~ema nao cobrir os idiomas chines e japones.
"ern gropo de empresas decidiu resolver esse problema for-
:1'illiandourn cons6rcio para criar urn novo sistema, chamado
{~lCODE, transformando-o em urn padrao internacional (IS
o UNICODE e suportado por algumas linguagens de
t!lR~~ma~ao (Java, por exemplo), por alguns sistemas operaci-
?:1'ill;alS(como, por exemplo, 0 Windows NT) e por muitas aplica-
E muito provavel que 0 UNICODE se tome cada vez mais
na medida em que a industria dos computadores se
A ideia basica que M por tras do UNICODE e atribuir a cada
::ractere e a cada sfmbolo urn unico valor de 16 bits, conhecido
?;'1)1mOponto de c6digo. No UNICODE nao existem caracteres
,"arios bytes nem sac usadas seqtiencias formadas por meio
t", tecla ESe. 0 fato de cada sfmbolo representado no c6digo ter
bits facilita muito a escrita dos softwares que tomam por base
c6digo.
Com sfmbolos de 16 bits, 0 UNICODE tern exatamente
65.536 pontos de c6digo. Como todas as linguagens do mundo
usam cerca de 200.000 sfmbolos, os pontos de c6digo sac urn
recurso escasso que precisam ser alocados com muito cuidado.
Cerca de metade dos pontos de c6digo disponfveis no UNICODE
ja foi aloe ada, e 0 cons6rcio responsavel pelo desenvolvimento
do c6digo examina continuamente as propostas de utiliza~ao dos
demais pontos de c6digo. Para acelerar a aceita~ao do
UNICODE, 0 cons6rcio burocraticamente atribuiu os pontos de
c6digo de a a 255 para 0 c6digo Latino 1, tornando muito facil a
conversao entre 0 ASCII e 0 UNICODE.
Para evitar 0 desperdfcio de pontos de c6digo, cada acento tern
seupr6prio ponto de c6digo. Fica a cargo do software combinar
os acentos com os caracteres digitados em seguida para formar
os caracteres acentuados.
o espa~o dos pontos de c6digo e dividido em blocos, cada
bloco contendo urn numero de pontos de c6digo multiplo de 16.
Cada urn dos alfabetos principais do UNICODE ocupa uma se-
quencia de zonas consecutivas. Alguns exemplos (incluindo 0
mimero de pontos de c6digo aloe ados a cada alfabeto) sac 0 la-
tino (336), 0 grego (144), 0 cirilico (256), 0 armenio (96), 0
hebraico (112), 0 devanagari (128), 0 gurma (128), 0 oria (128),
o telego (128) e 0 kana (128). Observe que foram alocados a cada
urn desses alfabetos mais pontos de c6digo do que as letras exis-
tentes. Essa decisao foi tomada em fun~ao de muitas linguagens
terem divers as formas para cada letra. Por exemplo, cada letra
do alfabeto ingles tern duas formas: a maiuscula e a minuscula.
Algumas linguagens admitem tres ou mais formas, dependendo
se a letra esta no inicio, no meio ou no fim da palavra.
Alem dos pontos de codigo alocados a esses alfabetos, exis-
tern aqueles atribufdos aos acentos (112), aos caracteres de pon-
tua\fao (112), aos subscritos e sobrescritos (48), sfmbolos finan-
ceiros (48), sfmbolos matemiiticos (256), formas geometricas
(96) e dingbats (192). *
Apos esses caracteres come~am os sfmbo10s necessarios aos
alfabetos chines, japones e coreano. Primeiro foram alocados
pontos de c6digo para os 1024 sfmbolos foneticos (como, por
exemplo, 0 catacana e 0 bopomofo), depois para os ideogramas
unificados de Han (20.992) usados no alfabeto chines e no japo-
nes, e depois para as sflabas Hangul do alfabeto coreano,
totalizando mais 11.156 pontos de c6digo.
Urn total de 6400 pontos de codigo foi dedicado a sfmbolos a
serem criados pelos usuarios.
Apesar de resolver muitos problemas ligados a intemaciona-
liza\fao, 0 UNICODE nao da conta de todos os problemas do
mundo. Por exemplo, enquanto os pontos de c6digo do alfabeto
latino foram associados na ordem constante do dicionario, aque-
les relativos aos ideogramas Han nao foram alocados por essa
ordem. Como consequencia, urn programa em ingles pode exa-
minar as palavras "cat" e "dog" e coloca-Ias na ordem alfabetica
simplesmente comparando os valores UNICODE dos seus pri-
meiros caracteres. Urn programa em japones precisa de tabe1as
extemas para determinar quais de dois sfmbolos vem primeiro
no dicionario.
Outra questao e que constantemente estao sendo criadas no-
vas palavras. Poucos anos atras, ninguem falava sobre aplets,
cyberspace, gigabytes, lasers, modems, smileis ou videotapes.
o acrescimo de novas palavras ao idioma ing1es nao exige a
aloca\fao de novos pontos de codigo ao alfabeto. Porem, 0 acres-
cimo de novas palavras ao japones exige a aloca~ao de pontos
de codigo adicionais. Alem de novas palavras tecnicas, existe
uma demanda para acrescentar urn minimo de 20.000 (a maioria
chineses) novos nomes proprios e novos nomes de localidades
geograficas. Alem disso, a comunidade de cegos acha que 0 al-
fabeto braile deve estar representado no UNICODE, alem de di-
versos outros grupos de interesse que reclamam seus direitos a
pontos de codigo. 0 consorcio UNICODE examina cuidadosa-
mente todas as propostas e decide pel a aloca~ao, ou nao, de no-
vos pontos de codigo. .
o UNICODE usa os mesmos pontos de codigo para caracteres
essencialmente identic os mas que tern diferentes significados ou
que sac escritos de maneira ligeiramente diferente no chines e
no japones (os processadores de texto para a lingua inglesa mui-
tas vezes confundem "blue" com "blew", pois ambas as palavras
* Dingbat e uma pequena figura, como uma estrela ou uma seta, que pode ser
inserida em urn documento. Existem varios conjuntos de dingbats disponiveis
como fontes. 0 mais conhecido desses conjuntos e 0 ZAPF, cujo nome e uma
homenagem ao seu criador Hermann Zapf. (N. T.)
parecem identicas). Algumas pessoas veem essa otimiza~ao
como urn meio de economizar os escassos pontos de codigo,
outras atribuem essa decisao ao imperialismo cultural anglo-
saxao (voce ja tinha parado para pensar que a atribui~ao de 16
bits a caracteres pudesse se transformar em uma questao polfti-
ca?). Para piorar urn pouco mais as coisas, urn dicionario com-
pleto de japones tern 50.000 caracteres kanji (sem contar os no-
mes proprios), com somente 20.992 pontos de codigo alocados
para os ideogramas Han, dos quais os caracteres kanji fazem
parte. Portanto, em fun~ao do exposto, ha necessidade de se to-
marem decisoes serias sobre a aloca\fao dos pontos de codigo.
Nem todos os cidadaos japoneses concordam com 0 fato de urn
consorcio de empresas fabricantes de computadores transformar-
se no forum para esse tipo de debate, mesmo sabendo que algu-
mas dessas empresas sac japonesas.
Os sistemas computacionais sac formados por tres tipos de
componentes: processadores, mem6rias e dispositivos de E/S. A
tarefa do processador e buscar as instru~6es na mem6ria uma por
uma, decodifica-Ias e executa-Ias. 0 ciclo de busca-decodifica-
\fao-execu~ao pode sempre ser descrito como urn algoritmo e,
na verdade, ser algumas vezes executado por urn interpretador
escrito em software que roda em urn nivel mais baixo. Para ga-
nhar velocidade, a maioria dos processadores tern urn ou mais
pipelines, ou e projetada segundo a tecnica superescalar com
varias unidades funcionais operando em paralelo.
Sao cada vez mais comuns os sistemas com mais de urn pro-
cessador, dedicados ao processamento paralelo. Esses compu-
tadores podem ser matriciais, nos quais a mesma opera~ao e re-
petida ao mesmo tempo sobre diversos conjuntos de dados,
multiprocessadores nos quais varios process adores compartilham
urna mem6ria comum, ou multicomputadores, nos quais existem
diversos processadores com suas pr6prias mem6rias mas que se
comunicam por meio de troca de mensagens.
As mem6rias podem ser classificadas como principais e se-
cundarias. A memoria principal e usada para armazenar 0 pro-
grama que estiver sendo executado. Seu tempo de acesso e mui-
to pequeno - da ordem de poucas dezenas de nanossegundos
no maximo - e independe do endere\fo que estiver senda
acessado. As mem6rias cache conseguem ter urn tempo de aces-
so ainda menor. Algumas memorias sac equipadas com c6digos
de corre\fao de erros para melhorar a confiabilidade de sua ope-
ra~ao.
Em contraste com as mem6rias principais, as mem6rias se-
cundarias tern urn tempo de acesso muito mais alto (da ordem
de milissegundos) e dependente do ultimo dado que foi lido ou
impresso. As fitas, os discos magneticos e os discos 6pticos sao
os tipos de memoria secundaria mais conhecidos. Existe uma
grande variedade de discos magneticos, incluindo os discos fle-
xlveis, os discos Winchester, os IDE, os SCSI e os RAIDs. Os
discos opticos incluem os CD-ROMs, os CD-Rs e os DVDs.
Os dispositivos de E/S sao usados na transferencia de infor-
ma\fao para dentro e par a fora do computador. Eles sao ligados
ao processador e a memoria por intermedio de urn ou mais bar-
ramentos. Como exemplos desses dispositivos podemos citar os
terrninais, os mouses, as impressoras e os modems. A maioria
dos dispositivos de ElS usa 0 c6digo de caracteres ASCII, ape-
sar de 0 UNICODE estar ganhando terreno rapidamente, na
medida em que a industria da computa\fao se globaliza.
1492
746
373
186
93
46
23 0
siste em duas vezes a entrada da linha n - I mais 0 bit na linha
n (Oou 1). A entrada da linha superior e a resposta. A Fig. A.6
mostra urn exemplo desse metodo de conversao de numeros bi-
nanos em numeros decimais.
As convers6es de decimal em octal e de decimal em hexade-
cimal podem ser feitas convertendo-se os numeros primeiro em
binano e depois na base desejada, subtraindo-se dele potencias
de 8 ou de 16.
Ao longo de sua curta hist6ria, os computadores digitais usa-
ram quatro sistemas diferentes para representa~ao de mlmeros
inteiros negativos. 0 primeiro deles e conhecido como sinal-
magnitude. Nesse sistema, 0 bit mais a esquerda do numero
representa 0 sinal (0 e + e 1 e - )e 0 resto dos bits guarda 0 valor
absoluto do numero.
o segundo sistema, conhecido como complemento a urn,
tambem tern um bit para representar 0 sinal, que e 0 quando 0
sinal e positivo e 1 quando ele e negativo. Para negar 0 valor de
um numero devemos substituir cada bit 1 por um bit 0 e cada bit
o por urn bit 1. Isso tambem vale para 0 bit de sinal. * A repre-
senta~ao em complemento a 1 esta obsoleta.
o terceiro sistema, conhecido como complemento a dois,
tambem tem um bit de sinal que e 0 quando 0 numero for posi-
tivo e 1 quando for negativo. A nega~ao de um numero em com-
plemento a dois e realizada em dois passos. Primeiro, cada bit 1
e substitufdo por um bit 0 e cada bit 0 e substitufdo por um bit 1,
exatamente como no complemento a um. Depois, 0 valor 1 e
somado ao numero obtido no passo anterior. A soma binana e
igual a soma decimal, exceto pelo fato de um carry* ser gerado
Fig. A.5 Conversao do mlmero decimal 1492 em bimirio por divisoes
sucessi vas por 2, come9ando em cima e terminando embaixo. Por exem-
plo, dividindo-se 93 por 2 obtem-se 46 para quociente e 1 para resto,
valores esses que devem ser escritos na linha seguinte aquela onde esta
escrito 0 valor 93.
nha de baixo e chamada de linha 1, a seguinte a ela de linha 2 e
assim sucessivamente. 0 mimero decimal equivalente ao bina-
rio sera construfdo em uma coluna paralela a do mimero bina-
rio. Comece escrevendo 1 na linha 1. A entrada da linha n con-
*0 mimero negativo e representado em complemento a urn pela nega\iao do
mirnero positivo, ou seja, -7 e represemado pela negayao de +7. (N. T.)
*Equivalente ao vai-um. (N. T.)
1 1 1II~:1+ 2x 1499~2999 -.--Resultado
1 + 2 x 749 = 1499
"1 +2x374=749
"
'--------.- 0 + 2 x 187 = 374
"
1 + 2 x 93 = 187
"'--------- ••.. 1 + 2 x 46 = 93
---------- __ 0 + 2 x 23 ~6
'------------_ 1 + 2 x 11~3
"1+2x5=11
1+2X2:S
O+2X1~
"
1 + 2 x 0 = 1 _.0----- Comece aqui
Fig. A.6 Conversao do mlmero binano 101110110 111 para decimal por sucessivas multiplica90es por 2, come9ando embaixo. Cada linha e for-
mada dobrando-se a linha de baixo e adicionando-se ao resultado 0 bit correspondente. Por exemplo, 749 e 0 dobro de 374 mais 0 bit 1, presente
na mesma linha onde esta 0 valor 749.·
se a soma for maior que 1 em vez de ser maior que 9, como e na
soma decimal. Por exemplo, a conversao de 6 para complemen-
to a dois e feita nos dois seguintes passos:
00000110
lllIlOOl
l1lIlOIO
(+6)
(-6 em complemento a urn)
(-6 em complemento a dois)
Se acontecer urn carry a partir do bit mais a esquerda, ele deve
ser descartado.
o quarto sistema, que para mimeros de m bits e conhecido
como excesso de 2m - 1, representa 0 mimero armazenando-o
como a soma de seu valor absoluto com 2m - 1. Por exemplo, no
caso de numeros de 8 bits m = 8, 0 sistema e chamado de exces-
so de 128 e qualquer numero e armazenado com seu valor real
somado a 128. Portanto, - 3 transforma-se em - 3 + 128 = 125,
e portanto e representado pelo numero bimirio de 8 bits que re-
presenta 125 (01111101). Os numeros entre -128 e +127 sac
mapeados em 0 a 255, de modo que todos sac expressos como
urn inteiro positivo de 8 bits. E interessante observar que mime-
ros nessa representa<;ao sac identicos a sua representac;ao em
complemento a dois, com 0 bit de sinal invertido. A Fig. A.7
mostra exemplos de numeros negativos representados nos qua-
tro sistemas discutidos.
Tanto a representac;ao em sinal-magnitude quanto a represen-
ta<;ao em complemento a dois tern duas representa<;6es para 0
zero: mais zero e menos zero. Essa situac;ao e de todo indeseja-
vel. A representac;ao em complemento a dois nao oferece esse
problema, pois 0 complemento a dois de mais zero e tambem mais
zero. No entanto, a representac;ao em complemento a dois tern
uma singularidade diferente dessa. 0 padrao de bits composto
peIo bit 1 seguido de Os e seu proprio comp1emento. Em decor-
rencia disso, a quantidade de numeros positivos e diferente da
quantidade de numeros negativos; existe urn numero negativo
que nao tern a sua contrapartida positiva.
A razao desses problemas nao e dificil de entender: precisa-
mos de urn sistema de codifica<;ao com duas propriedades:
1. Vma unica representac;ao para 0 zero.
2. Exatamente a me sma quantidade de numeros negativos e
positivos.
o problema e que qualquer conjunto de numeros com a mesma
quantidade de valores positivos e negativos tern uma quantida-
de par de membros, enquanto In bits permitem a forma<;ao de uma
quantidade impar de padr6es de bits diferentes. Portanto, havera
sempre urn padrao de bits a mais ou a menos, nao importa qual
a representac;ao escolhida. Esse padrao de bits extra pode ser
usado como -0, como 0 menor numero negativo da representa-
<;ao, ou algo assim, mas, independentemente de como esse pa-
draa de bits for usado, ele sempre sera urn estorvo.
N -N -N
-N -N
N em sinal- em complemento em complemento em excesso de
em decimal em binario magnitude a1 82 128
1 00000001 10000001 11111110 11111111 01111111
2 00000010 10000010 11111101 11111110 01111110
3 00000011 10000011 11111100 11111101 01111101
4 00000100 10000100 11111011 11111100 01111100
5 00000101 10000101 11111010 11111011 01111011
6 00000110 10000110 11111001 11111010 01111010
7 00000111 10000111 11111000 11111001 01111001
8 00001000 10001000 11110111 11111000 01111000
9 00001001 10001001 11110110 11110111 01110111
10 00001010 10001010 11110101 11110110 01110110
20 00010100 10010100 11101011 11101100 01101100
30 00011110 10011110 11100001 11100010 01100010
40 00101000 10101000 11010111 11011000 01011000
50 00110010 10110010 11001101 11001110 01001110
60 00111100 10111100 11000011 11000100 01000100
70 01000110 11000110 10111001 10111010 00111010
80 01010000 11010000 10101111 10110000 00110000
90 01011010 11011010 10100101 10100110 00100110
100 01100100 11011010 10011011 10011100 00011100
127 01111111 11111111 10000000 10000001 00000001
128 Nao existe Naoexiste Nao existe 10000000 00000000reoresentacao reoresentacao reoresentacao
NUMEROS EM PONTO FLUTUANTE
Em alguns tipos de calculo, a faixa de variac;ao dos numeros envolvidos e muito grande. Por exemplo, urn problema de astrono-
mia pode precisar usar a massa do eletron, que e da ordem de 9 X 10-28 gramas, e a massa do Sol, aproximadamente igual a 2 X
1033 gramas, 0 que equivale a uma faixa de variac;ao que excede a 1060.Esses mimeros podem ser representados como
00000000000000000000ססOO0000000000.0000000000000000000000000009
2000000000000000000000000000000000.0000000000000000000000000000
e todos os calculos envolvendo-os devem ser realizados mantendo-se 34 digitos a esquerda do ponto decimal e 28 digitos a
direita do mesmo. Caso adotemos essa metodologia para execuc;ao dos calculos, teremos 62 dfgitos significativos nos resulta-
dos. Em urn computador digital binario, podemos projetar urn hardware para precisao multipla que seja capaz de trabalhar com
esse nivel de signifidincia. No entanto, se a massa do Sol nao pode ser determinada com mais de cinco digitos significativos
exatos, menos ainda 0 podeni com 62. Na verdade, poucas medidas podem (ou precisam) ser feitas com urna precisao de 62
dfgitos significativos. Embora seja perfeitamente possivel manter todos os resultados intermediarios de urn caIculo com 62 df-
gitos significativos, e no final descartar 50 ou 60 de1es antes de imprimir os resultados finais, fazendo isso estaremos desperdi-
c;ando tanto espac;o de mem6ria quanto tempo de processamento.
Em vista disso, precisamos efetivamente e de urn sistema de representac;ao de numeros no qual a faixa de variac;ao dos numeros
seja independente do mimero de dfgitos significativos dos mimeros representados. Tal sistema sera discutido neste apendice. Ele e
baseado na notac;ao cientffica usada na ffsica, na qufmica e na engenharia.
B.t PRINCIPIOS DA REPRESENTA<;AO
DE NUMEROS EM PONTO FLUTUANTE
Uma maneira de separar a faixa de variac;ao dos numeros de
sua precisao e expressando-os na notac;ao cientifica
onde f e conhecida como fra~ao ou mantissa e e e urn inteiro
positivo ou negativo,conhecido como expoente. A versao
computacional dessa notac;ao e chamada de representa~ao em
ponto flutuante. Alguns exemplos de numeros expressos nesse
formato sac
3,14 = 0,314 X 101 = 3,14 X 10°
0,000001 = 0,1 X 10-5 = 1,0 X 10-6
1941 = 0,1941 X 104 = 1,941 X 103
A faixa de variac;ao dos nlimeros e determinada pela quantidade
de dfgitos do expoente e a precisao e determinada pe1a quanti-
dade de dfgitos da mantissa. Como ha mais de uma maneira de
representar numeros nessa notac;ao, deve-se escolher uma delas
como padrao. Para que possamos investigar as propriedades des-
se metodo de representac;ao de numeros, considere uma repre-
sentac;ao, R, com uma mantissa de tres dfgitos com sinal, na faixa
0,1 :<::; If 1 < Iou zero e urn expoente de dois dfgitos com sinal. Tais
numeros tern uma faixa de variac;ao que vai de +0,100 X 10-99 a
+ 0,999 X 10+99, que se expande por mais ou menos 199 ordens
de magnitude, apesar de s6 precisarmos usar cinco dfgitos e dois
sinais para armazenar numeros expressos nessa notac;ao.
as numeros em ponto flutuante podem ser usados para mo-
delar 0 sistema de numeros reais da matematica, apesar de ha-
ver algumas diferenc;as importantes. A Fig. B.1 mostra urn es-
quema grosseiramente exagerado da reta de numeros reais. Areta
real e dividida em sete regioes:
1. Numeros negativos grandes, men ores que -0,999 X 1099•
2. Numerosnegativosentre -0,999 X lO9ge -0,100 X 10-99•
3. Numeros negativos pequenos, com magnitudes rnenores
que 0,100 X 10-99•
4. Zero.
5. Numeros positivos pequenos, com magnitudes menores
que 0,100 X 10-99•
6. Numeros positivos entre 0,100 X 10-99 e 0,999 X 1099•
7. Numeros positivos grandes, maiores que 0,999 X 1099•
A principal diferenc;a entre 0 conjunto de numeros represen-
taveis com mantissas de tres dfgitos e expoentes de dois e os
numeros reais e que a primeira representac;ao nao pode ser usa-
da para expressar qualquer dos numeros nas regioes 1,3,5 ou 7.
Se 0 resultado de uma operac;ao aritmetica gerar urn numero nas
regioes 1 ou 7 - como, por exemplo, 1060X 1060= 10120_.
vai ocorrer urn erro de overflow, e a resposta nao sera correta
A razao dessa incorrec;ao e a natureza finita da representac;ao
desses numeros. De maneira anaIoga, urn resultado na regiao 3
ou 5 tambem nao pode ser expresso. Essa situac;ao e conhecida
3 5
Underflow Underflow
negativo positivo
Nu~eros ~ z:ro / Nu~eros
negativos~xpressiveis ,~ t~, positivose~pressiveis
1
Overflow
negativo
,-----:..A----, ,
---~I"""'" .
-10'00
I I
-10-100 0
7
Overflow
positivo
,~
I
10-100
_··················I~ ----
10'00
como erro de underflow. Esse elTOnao e tao serio quanta 0 erro
de overflow, pois 0 e uma aproximar;ao satisfat6ria para mime-
ros nas regi6es 3 e 5. Vma conta bancana com 10-102 d6Iares de
saldo nao e muito melhor do que uma conta com saldo O.
Vma outra diferenr;a importante entre numeros em ponto flu-
tuante e numeros reais e a sua densidade. Entre dois numeros reais
quaisquer, x e y, existe um outro numero real, nao importa quan-
to x esteja pr6ximo de y. Essa propriedade pode ser justificada
observando-se que, para quaisquer dois numeros reais distintos,
x e y, z = (x + y)/2 e um numero real entre eles. Os nlimeros
reais variam de forma continua.
Contrastando com os numeros reais, os numeros em ponto flu-
tuante nao variam de forma continua, Existem exatamente 179.100
numeros positivos que podem ser expressos no sistema de cinco
dfgitos e dois sinais anteriormente descrito, alem de 179.100 nu-
meros negativos e 0 0 (que pode ser representado de diversas
maneiras), perfazendo um total de 358.201 numeros. Portanto,
somente 358.201 numeros, dos infinitos numeros reais entre
-10+ 100 e 0,999 X 1099, podem ser representados na notar;ao em
ponto flutuante. Esses numeros aparecem representados por pon-
tos na Fig. B.l, Eperfeitamente possfvel que 0 resultado de deter-
minado caleulo nao seja um desses numeros, especialmente se os
operandos estiverem na regiao 3 ou 6. Por exempl0, +0,100 X
103 dividido por 3 nao pode ser expresso exatamente no nosso sis-
tema de representar;ao. Se 0 resultado de urn calculo nao puder ser
expresso na representar;ao de numeros usada, 0 6bvio a ser feito e
utilizar 0 numero mais pr6ximo que possa ser expresso. Esse pro-
cesso e conhecido como arredondamento.
o espar;o entre dois numeros adjacentes expressos na repre-
sentar;ao nao e con stante nas regi6es 2 ou 6. A distancia entre
+0,998 X 1099 e +0,999 X 1099 e muito maior que a distancia
entre +0,998 X 10° e +0,999 X 10°. No entanto, quando a se-
parar;ao entre um numero e seu sucessor for expressa como um
percentual desse numero, nao vai haver variar;ao sistematica atra-
yes das regi6es 2 ou 6. Em outras palavras, 0 erro relativo in-
troduzido pelo arredondamento e aproximadamente 0 mesmo
para numeros grandes e para numeros pequenos.
Apesar de a discussao anterior ter sido colocada em termos
de uma representar;ao que usa tres dfgitos para a mantissa e dois
para 0 expoente, as conclus6es a que chegamos san vaIidas tam-
Mm para outros sistemas de representar;ao. A mudanr;a do nu-
mero de dfgitos reservados a mantissa ou ao expoente simples-
mente desloca as fronteiras das regi6es 2 e 6 e muda a quantida-
de de pontos que podem ser expressos em cada uma delas. 0
aumento da quantidade de dfgitos reservados a mantissa aumenta
a densidade dos pontos e, portanto, melhora a precisao nas apro-
ximar;6es. Ja 0 aurnento da quantidade de dfgitos reservados ao
expoente aumenta 0 tamanho das regi6es 2 e 6 e encolhe 0 tama-
000 das regi6es 1, 3, 5 e 7. A Fig. B.2 rnostra as fronteiras aproxi-
madas da regiao 6 para numeros decimais expressos em ponto
flutuante para diversos tamanhos da mantissa e do expoente.
Os computadores utilizam uma variante dessa representar;ao para
expressar nlimeros em ponto flutuante. Por quest6es de eficiencia, a
exponenciar;ao e feita na base 2, 4, 8 ou 16 em vez de se-l0 na base
10, e conseqiientemente a mantissa e composta por urn conjunto de
dfgitos binarios, da base 4, octais ou hexadecimais, respectivamen-
Dfgitos na mantissa Dfgitos no expoente Limite inferior Limite superior
3 1 10-12 109
3 2 10-102 I 1099
3 3 10-1002 10999
3 4 10-10002 109999
4 1 10-13 109
I 10-103
,
10994 2
4 3 10-1003 10999
4 4 10-10003 109999
5 1 10-14 109
5 2 10-104 1099
5 3 10-1004 10999
5 4 10-10004 109999
10 3 10-1009 10999
20 3 I 10-1019 10999
Fig. B.2 Limites superiores e inferiores apro-
ximados para numeros decimais (nao-norma-
lizados) expressos em ponto flutuante.
te. Se 0 bit mais a esquerda da mantissa for igual a zero, todos os
demais bits podem ser deslocados uma posi<;aopara a esquerda, sen-
do 0 expoente decrementado de uma unidade, sem que 0 valor do
numero sofra qualquer modifica<;ao. Diz-se que uma mantissa cujo
bit mais a esquerda e diferente de zero esta normalizada.
Na representa<;ao computacional de mimeros em ponto flu-
tuante, a representa<;ao normalizada e, em geral, melhor que a
nao-normalizada, pois so existe uma forma de representar urn
numero normalizado, enquanto na forma nao-normalizada urn
mesmo numero pode ser representado de diversas maneiras. A
Fig. B.3 mostra vanos exemplos de nlimeros em ponto flutuante
normalizados, em duas bases de exponencia<;ao. Nesses exem-
plos, a mantissa e de 16 bits (incluindo-se 0 bit de sinal) e 0 ex-
poente e de 7 bits, representado em excesso de 64 unidades. 0
ponto da base fica a esquerda do bit mais a esquerda da mantissa
- ou seja, a direita do expoente.
B.2 0 PADRAO IEEE 754 PARA
NUMEROS EM PONTO FLUTUANTE
Ate meados dos anos 1980, cada fabricante de computador ti-
nha seu proprio formato para representar nlimeros em ponto flu-
tuante. Desnecessario e dizer que todos eram diferentes. Pior ain-
da, algumas dessas representa<;oes tratavam erradamente as suti-
lezas das opera<;oesaritmeticas realizadas em ponto flutuante, que
nao sac obvias para a maioria dos projetistas de hardware.
Para dar umjeito nessa situa<;ao inc6moda, 0 IEEE criou, no
final dos anos 1970, urn cornite para padronizar a aritmeticae a
representa<;ao de mimeros em ponto flutuante. 0 objetivo era nao
s6 permitir que computadores diferentes pudessem trocar dados
em ponto flutuante, mas tambem fornecer aos projetistas de hard-
ware urn modelo que sabidamente funcionasse de maneira cor-
reta. 0 trabalho desse cornite resultou no Padrao 754 (IEEE.
1985). A partir dai, a maioria dos processadores (incluindo os
da Intel, os da linha SPARe e os JVM estudados neste livro) tern
instru<;oes em ponto flutuante aderentes ao padrao IEEE para
ponto flutuante. Ao contrano de vanos outros padroes, que aca-
barn nao agradando a ninguem por tentar acomodar icteias e opi-
nioes de vanas pessoas, esse padrao e quase universalmente acei-
to, em parte por refletir as ideias de uma unica pessoa, 0 profes-
sor de matematica William Kahan, da Universidade de Berkeley.
o restante desta se<;aodescreve 0 padrao IEEE 754.
o padrao IEEE 754 define tres formatos: a precisao simples
(32 bits), a precisao dupla (64 bits) e a precisao estendida (80
bits). Este ultimo formato foi definido com 0 objetivo de mini-
mizar os erros de arredondamento. Ele e usado principalmente
dentro das unidades aritmeticas que operam com numeros em
ponto flutuante, de maneira que nao vamos mais discuti-Io. Tanto
o formato em precisao simples quanta 0 formato em precisao
dupla usam a base 2 para a mantissa e a nota<;ao em excesso para
o expoente. A Fig. B.4 mostra esses formatos.
Ambos come<;am com urn bit que representa 0 sinal do nu-
mero, com 0 significando 0 sinal positivo e 1 0 sinal negativo.
Em seguida vem 0 expoente que usa a nota<;ao em excesso de
127 para precisao simples e em excesso de 1023 para precisao
dupla. Os expoentes minima (0) e maximo (255 e 2047) nao sao
usados na representa<;ao de numeros normalizados; eles tern usa
especial, que sera descrito a seguir. Finalmente, temos as
mantissas, com 23 e 52 bits, respectivamente.
Uma mantissa normalizada come<;a com 0 ponto binano se-
guido por urn bit 1 e pelo resto da mantissa. Seguindo a pnitica
\
"
... .-.. .:;. . ,
-,-'C~.
Nao-normalizado: 0 1 01 01 00' 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 = 220 (1 X 2-12+ 1 X 2-13+ 1 X 2-15
'-v--' ' , •. .
Sinal Expoenteemexcesso Mantissaiguala 1 x 2-12 + 1 X 2-13 + 1 X 2-16),-; 432
+ d~64 e iguala +1 x 2-15+ 1 X 2-15---- -- •.
84,- 64 = 20
Paranorrnalizar,desloquea mantissaparaa esquerda11bitse subtraia11do expoente.
01001001110110000000000
'-v--' '----,---J . , •
Sinal Expoenteemexcesso Mantissaiguala 1 x 2-1 + 1 X 2-2
+ de64e iguala +1 x 2-4 + 1 X 2-5
73-64=9
o = 29 (1 X 2-1+ 1 X 2-2+ 1 X 2-4
+ 1 X 2-5)=432
'v O~~b
~}dH)
Nao-normalizaifo:
16-1
A
0000
16-2
A
0000
16-3
A
0001
16-4
A
1011 = 165(1 x 16-3+Bx 16-4)=432o 1000101
'-v--' '--_~
Sinal Expoenteemexcesso Mantissaiguala 1 x 16-3 + B X 16-4
+ de 64e iguala
69-64=5
o 1000011 0001 1011 0000 0000 =163(1x16-'+Bx16-2)=432
'-----.r-" \ I. \~ ~
Sinal Expoenteemexcesso
+ de 64 e iguala
67-64=3
Bits 1 8 23) ,_1 Mantissa
Sinal Expoente
Bits 1 11
~Expoente
Sinal
iniciada no projeto do PDP-11, os autores do padrao IEEE ima-
ginaram que 0 primeiro bit 1 de uma mantissa n800precisa ser
armazenado, pois pode-se admitir que ele esteja sempre presen-
te. Conseqiientemente, 0 padr800define a mantissa de uma ma-
neira urn pouco diferente da usual. Ela e composta por urn bit
implfcito, de valor 1, seguido de urn ponto binario, tambem im-
plfcito, e de 23 ou 52 bits de valores arbitrarios. Se todos os 23
ou 52 bits da mantissa forem iguais a 0, a mantissa tern seu valor
numerico igual a 1,0; se todos eles forem iguais a 1, a mantissa
e numericamente igual a 2,0. Para evitar confusao com a mantissa
convencional, a combina~ao do 1 implfcito, do ponto binario
implfcito e dos 23 ou 52 bits explfcitos e chamada de significan-
do, em vez de mantissa. Todos os numeros normalizados tern urn
significando, s, na faixa 1 :s s < 2.
As caracteristicas numericas dos numeros em ponto flutuante
expressos no formato IEEE 754 sao mostradas na Fig. B.5. Consi-
dere como exemplos os numeros 0,5, 1 e 1,5 no formato normali-
zado em precisao simples. Suas representa\;5es em hexadecimal s8oo,
respectivamente, 3FOOOOOO,3F800000 e 3FCOOOOO.
Urn dos problemas tradicionais dos numeros em ponto flutu-
ante e 0 tratamento dos erros de underflow e overflow e dos
n6meros nao-inicializados. a padrao IEEE trata esses problemas
explicitamente, de maneira parecida com 0 tratamento que eles
recebiam da arquitetura CDC 6600. Alem dos numeros norma-
lizados,o padrao IEEE 754 tern outros quatro tipos numericos,
descritos a seguir e ilustrados na Fig. B.6.
Quando 0 resultado de uma opera~ao aritmetica sobre nume-
ros em ponto flutuante tiver uma magnitude menor do que 0
menor numero normalizado representave1 nesse sistema, algo
deve ser feito para solucionar esse problema. Antes do padr800
IEEE, a maioria dos hardwares adotava uma de duas metodolo-
gias: simplesmente fazer com que a opera~ao assuma 0 valor zero
e continuar 0 processamento, ou gerar urn trap notificando urn
erro de underflow. Nenhum desses dois metodos e satisfatorio,
o que levou 0 padriio IEEE a introduzir os numeros nao-nor-
malizados. Esses numeros tern expoente igual a 0 e mantissa de
23 ou 52 bits, que se seguem aos bits do expoente. a bit 1, im-
plfcito it esquerda do ponto bimirio, agora vale O. as mimeros
nao-normalizados podem ser diferenciados dos normalizados,
observando-se que esses ultimos nunca tern expoente igual a O.
o menor numero normalizado em precisao simples tern 1 para
expoente e 0 para mantissa, e representa 0 valor 1,0 X 2-126.0
Item Precisao simples Precisao dupla
Bits no campo do sinal 1 1
Bits no campo do expoente 8 11
Bits no campo da mantissa 23 52
Numero total de bits 32 64
Sistema de representagao do expoente Excesso de 127 Excesso de 1023
Faixa de variagao do expoente -126 a +127 -1022 a +1023
Menor numero normalizado 2-126 2-1022
Maior numero normalizado aproxlmadamente 2'28 aproximadamente 2'024
Faixa de variagao em decimal aproximadamente de 10-38 a 1038 aproximadamente de 10-308 a 10308
Menor numero nao-normalizado aproxlmadamente 10-45 aproximadamente 10-324
Normalizado O<Exp<Max
Nao-normalizado 0
Zero 0 0
Infinito EI 111...1
Not a number ± 1 1 1 ... 1
Bit de sinal
maior numero nao-normalizado tern 0 para expoente e mantissa
com todos os 23 bits iguais a I, e representa aproximadamente
0,9999999 X 2-127, valor esse quase identico ao representado pelo
menor numero normalizado. No entanto, devemos observar que
o valor nao-normalizado tern somente 23 bits significativos,
enquanto os numeros normalizados tern 24.
Na medida em que opera~oes aritmeticas posteriores reduzam
o valor desse resultado, 0 expoente permanece iguaI a 0, mas os
prirneiros bits da mantissa VaGassurnindo 0 valor 0, reduzindo
tanto 0 valor do numero quanta a quantidade de bits significati-
vos da mantissa desse numero. 0 menor valor nao-normalizado
diferente de zero e composto por urn bit 1 na posic;ao mais a di-
reita da mantissa, com todos os demais iguais a O. 0 expoente
desse numero representa 2-127 e a mantissa representa 2-23 -
portanto, 0 valor do numero e 2-150• Esse esquema trata 0 erro de
underflow de maneira bastante conveniente, atribuindo urn va-
lor ao resultado em vez de simples mente iguala-Io a 0 quando
esse resultado nao puder ser expresso como urn numero norma-
lizado.
Nesse esquema existem duas representac;oes para 0 zero, uma
positiva e outra negativa, diferenciadas pelo bit de sinal do nu-
mero. Ambos tern expoente igual a 0 e mantissa tambem igual a
O. Tambem nesse caso, 0 bit implfcito, situado a esquerda do
ponto binario, e iguaI a 0 e nao a 1.
o erro do overflow nao tern urn tratamento tao favonivel. Nao
sobrou qualquer combinac;ao de bits que possa ser usada no tra-
tamento desse tipo de erro. Por esse motivo, utiliza-se uma re-
presentac;ao para valores infinitos, composta de urn expoente com
todos os seus bits iguais a I (que nao pode ocorrer em numeros
normalizados) e uma mantissa com todos os seus bits iguais a O.
Esse numeropode ser usado como urn operando e se comporta
com as regras matematicas para tratamento do infmito. Por exem-
plo, infinito mais qualquer outro valor e igual a infinito, e qual-
quer numero dividido por infinito e igual a zero. Alem disso,
qualquer numero finito dividido por zero resulta em infinito.
o que dizer de infinito dividido por infinito? 0 resultado e
indefinido. Para tratar esse caso existe urn outro formate especi-
al chamado NaN (Not a Number). Esse valor tambem pode ser
usado como operando em operac;6es aritmeticas.
1. Converta os seguintes numeros no formato IEEE 754, usando a
precisiio simples. Fome9a os resultados com oito digitos hexade-
cimais.
a. 9
b. 5/32
c. -5/32
d. 6,125
2. Converta os seguintes numeros expressos no formato IEEE 754.
precisao simples, da base hexadecimal para a decimal.
a. 42E4800~ex
b. 3F880000hex
c. 00800000hex
d. C7FOOooOhe,
3. 0 formato dos numeros em ponto flutuante de precisao simples na
arquitetura IBM 370 tern urn expoente de 7 bits em excesso de 64
unidades, uma mantissa de 24 bits e urn bit para 0 sinal do nume-
roocom 0 pontobinfuio a esquerda do fim da mantissa. A base para
a exponencia9ao e a base 16. A ordem dos campos e bit de sinal.
expoente. mantissa. Represente 0 numero 7/64 como urn numero
normalizado expresso nesse sistema. Sua resposta deve ser dada
em hexadecimal.
4. Os numeros bimirios em ponto flutuante mostrados a seguir sac
compostos por urn bit de sinal, urn expoente em excesso a 64 cuja
base de exponencia9ao e a base 2, e uma mantissa de 16bits. Pede-
se normaliza-los.
a. 0 1000000 00010 10100000001
b. 00111111 0000001111111111
c. 010000111000000000000000
5. Para somardois numeros em pontoflutuante,e precise em primeiro
lugar ajustar seus expoentes (deslocando a mantissa) igualando-
os. Depois disso e possivel somar as mantissas e se necessaria.
normalizar 0 resultado. Some os numeros 3EEOOOOOhe,e
3D8000~ex' expressos no formato IEEE 754, precisao simples.
o resultado normalizado deve ser fomecido em hexadecimal.
6. Uma empresa fabricantede processadores decidiu colocar no mer-
cado uma maquina com numeros em ponto flutuante de 16bits. A
primeira versao dessa maquina tinha os numeros em ponto flutu-
ante representados com urn bit de sinal, expoente de 7 bits em
excesso a 64, e mantissa de 8 bits. A segunda versao tinha nume-
ros em ponto flutuante representados com expoente de 5 bits em
excesso a 16 e mantissa de 10 bits. Ambos usavam a base 2 como
base para a exponencia9ao. Qual 0 maior mimeropositivo norma-
lizado representavel em cada uma dessas maquinas? Qual 0 me-
nor? Quantos digitos decimais de precisao esses numeros tern"
Voce compraria alguma dessas maquinas?
7. Existe uma situa9aona qual uma opera9ao sobre dois numeros em
ponto flutuante pode causar uma redu9ao drastica na quantidade
de digitos significativos do resultado. Que situa9ao e essa?
8. Alguns chips para processamento em ponto flutuante tern incor-
porada a fun9aoraiz quadrada. Urn algoritmo iterativo (por exem-

Continue navegando