O documento descreve a evolução histórica dos computadores desde os primórdios com o uso de pedras para contar ovelhas até os primeiros computadores mecânicos e eletrônicos do século 20. Destaca inventos importantes como o ábaco, a máquina de Pascal e as máquinas de tabulação de Hollerith que permitiram automatizar cálculos. Também apresenta pioneiros como Babbage, Ada Lovelace, Turing e os primeiros computadores como o Z1 e o Harvard Mark 1.
4. CONHEÇA A
COAUTORA
CONHEÇA O
AUTOR
Ana Paula da Costa Cardoso é engenheira
eletricista com ênfase em Eletrônica
pela Escola de Engenharia de Lins/SP,
especialista em Educação e mestre em
Redes de Computadores pela Universidade
Federal de Uberlândia/MG. Cursando
especialização em Engenharia de Produção.
Profissional com 15 anos de experiência
docente nos cursos de Computação
(Processamento de Dados, Sistemas
de Informação, Ciência da Computação,
Engenharia da Computação, entre outros) e
engenharias. Consultora do MEC (Ministério
da Educação e Cultura) do Governo Federal,
exercendo as atividades de avaliadora de
cursos de graduação presenciais e EaD,
desde 2006. Experiência profissional,
fora da docência, com consultorias nas
áreas de desenvolvimento de sistemas,
gerenciamentodesoftwares,áreacomercial
e projetos de redes de computadores.
Osmar Ventura é mestrando em
Engenharia Elétrica, especialista
em Administração de Redes de
Computadores e Tecnologias em
Educação a Distância e graduado em
Tecnologia em Processamento de Dados.
Atualmente, é professor-assistente do
Centro Universitário UNA e do Centro
Universitário de Belo Horizonte (Uni-BH)
e coordenador de operações do Núcleo
de Educação a Distância do Grupo Ănima
Educação. Possui experiência na área de
Engenharia de Computação, em projetos
de sistemas digitais, segurança de redes
computacionais e tecnologia para a
educação. É professor convidado nos
cursos de especialização do IEC - PUC
Minas.
5. APRESENTAÇÃO
DA DISCIPLINA
Prezado(a) aluno(a),
um momento de dificuldade que todos já
passamos ou com certeza iremos passar é
no ato da compra de um computador. Uma
pergunta simples a um vendedor, do tipo
“eu gostaria de comprar um notebook, qual
modelo você tem?”, deveria ser seguida
também por uma resposta simples, mas
não é. A resposta vem incorporada de
uma lista de dados técnicos, como por
exemplo:
Marca: Positivo, Processador - Intel
Celeron Dual Core, Modelo Processador:
847, Cache 2M Cache, Chipset Intel NM70,
Memória RAM 4GB, Placa Mãe Positivo,
HD 750GB, Drives Leitor e Gravador de
CD/DVD (Gravador de CD 24x, Gravador
de DVD 8x), Tamanho da tela 14”, Rede
10/100/1000 Mbps Gigabit Ethernet.
Diante de tantas informações, o
usuário opta por uma característica
e praticamente escolhe às escuras.
Na grande maioria, a frequência do
processador e o tamanho do HD
determinam a qualidade do equipamento,
o que na realidade pouco pode-se afirmar
com poucas informações. O computador
funciona como uma indústria e sua linha
de produção. Cada elemento possui uma
função na linha de produção, causando
influência direta no custo e desempenho.
A disciplina Arquitetura de Computadores
tem como objetivo apresentar uma base
teórica para um entendimento de todas
estas características que envolvem os
equipamentos eletrônicos, principalmente
os computadores, fornecendo explicações
amplas sobre os principais elementos que
compõem a estrutura de um computador,
permitindo desenvolver um pensamento
analítico e coerente diante das constantes
evoluções tecnológicas.
Nela, você verá noções básicas de
sistemas de numeração e sistemas
digitais; o funcionamento e as principais
características da Unidade Central de
Processamento, memórias, barramentos
e os dispositivos de entrada e saída;
comparativo entre arquiteturas RISC e
SISC; desempenho de computadores e
tecnologias emergentes.
Assim, ao final da disciplina, você será
capaz de entender o funcionamento dos
principais elementos que compõem a
Arquitetura de Computadores, a interação
entre si e as diversas aplicações nas
organizações.
Bons estudos!
6. UNIDADE 1 003
Introdução à Arquitetura de Computadores 004
Computadores: origem e evolução 004
Arquitetura e organização de computadores 010
Estrutura e função 012
Conceitos complementares 016
Revisão 019
UNIDADE 2 022
Sistemas Numéricos 023
Sistemas Posicionais 025
Base de um sistema numérico 026
Conversões entre bases 032
Representação de dados 040
Revisão 063
UNIDADE 3 065
Sistemas Digitais 066
Conceitos básicos 067
Operadores lógicos 071
Circuitos lógicos 077
Revisão 081
UNIDADE 4 084
Unidade Central de Processamento 085
Organização do processador 086
Componentes 092
Ciclo de instrução 096
Pipeline de instruções 000
Principais tecnologias do mercado 105
Revisão 107
REFERÊNCIAS 109
8. ARQUITETURA DE
COMPUTADORES
unidade 1
003
INTRODUÇÃO À ARQUITETURA DE
COMPUTADORES
N
o estudo de Arquitetura de Computadores, será necessária a apresentação e o
refinamentodealgunsconceitosedefiniçõesacercadacomputação.Nestaunidade,
inicialmente, serão apresentadas a origem e a evolução dos computadores.
Posteriormente, serão trabalhadas as diferenças entre arquitetura e organização de
computadores, bem como as suas funções e estruturas.
COMPUTADORES:
ORIGEM E
EVOLUÇÃO
Provavelmente, o computador é um dos inventos mais maravilhosos do homem. Atualmente
existem diversos tipos de computadores nas mais variadas aplicações. Contudo, sua função
inicial era bastante primitiva, ou seja, era usado somente para efetuar cálculos matemáticos
básicos, como adição e subtração.
Pode-se considerar que a história da criação e evolução dos computadores começa na
Antiguidade, juntamente com a necessidade dos homens efetuarem contas. Há registros
históricos sobre quando os pastores que buscavam uma forma de contar e armazenar
o número de ovelhas do seu rebanho, usavam pequenas pedras, denominadas “calculus”,
para representar cada uma de suas ovelhas. Tais “calculus” eram então armazenados em
9. ARQUITETURA DE
COMPUTADORES
unidade 1
004
uma bolsa de couro e, em um determinado
momento, as pedras armazenadas nas
bolsas eram comparadas com cada
uma das ovelhas do rebanho. Sobrando
“calculus”, significava que havia perda de
ovelhas; faltando, indicava que o rebanho,
de uma forma ou outra, crescera.
Nesse contexto, podemos entender a
origem da palavra “calcular”, que nada
mais é do que o simples fato de juntar
pedras e compará-las com algum outro
objeto. Nos dias de hoje, ao pensarmos em
calcularalgo,contamoscomaformalidade
da matemática para regulamentar a
relação de quantidade numérica entre
elementos. Na verdade, hoje temos uma
matemática que define algo além do que
simplesmente contar e comparar.
À medida que a humanidade foi evoluindo,
a necessidade de efetuar cálculos foi
aumentando em importância e dificuldade.
Gradativamente, foram surgindo operações
matemáticas mais complexas para suprir
determinadas necessidades que somente
as operações elementares como somar,
subtrair, multiplicar ou dividir não eram
suficientemente capazes de atender.
Nesse processo de evolução, o homem
sempre desejou usar alguma ferramenta
para ajudar na execução dos cálculos. A
primeira ferramenta conhecida e usada para
calcular denomina-se ábaco (FIGURA 1) e
foi criada há aproximadamente 5.500 anos,
na Mesopotâmia. Sua forma principal era
baseada em uma tábua com marcações
especiais indicando as classes numéricas
(dezena, centena, milhar etc.) e um sistema
de representação numérica que considerava
a quantidade de “calculus” em cada
marcação. A movimentação das pedras
ou outro elemento, como botões de ossos,
esferas, contas, entre cada uma das classes
representa efetivamente a execução das
operações matemáticas.
FIGURA 1 - Ábaco
Fonte: Site “Wikimedia Commons”. Abacus.
E assim se inicia o surgimento do
computador. Vamos entender um pouco
mais? Acompanhe a seguir a história e
evolução dos computadores.
Blaise Pascal constrói, em 1642, uma
máquina de calcular denominada
Pascaline, com engrenagens mecânicas
que permitiam efetuar operações de
soma e subtração. Era um dispositivo
que operava no sistema decimal e que
foi construído para auxiliar no processo
de cálculo de impostos para o governo
francês.
10. ARQUITETURA DE
COMPUTADORES
unidade 1
005
Fonte: Site “Wikimedia Commons”. Pascaline.
FIGURA 2 - Pascaline
Em 1801, Joseph Marie Jacquard inventa
e constrói um sistema mecânico que
usa cartões perfurados (metálicos)
para codificar operações repetitivas de
comando de teares, transformando parte
do processo de controle das máquinas
em automático. Daí surgiu a ideia de
programar as máquinas de tecer para
produzir padrões de cores diferentes.
A ideia de Jacquard influencia o francês
Charles Babbage a projetar uma máquina de
calcular cujo processo de cálculo pudesse
ser controlado por cartões. Em 1822,
Babbage publica um trabalho intitulado
“Differential Engine” com os princípios
pelos quais uma máquina deveria se basear
para efetuar operações algébricas.
FIGURA 3 - Differential Engine
Fonte: Site “Wikipedia”. Babbage Difference Engine.
Tal máquina não pôde ser totalmente
construída por Babbage por limitações
tecnológicas da época. Trabalhou junto
com ele Ada Byron King, também chamada
deAdaLovelace, historicamenteconhecida
como a primeira programadora, pois
desenvolvia programas para a máquina
que estava sendo projetada por Babbage.
Ada contribuiu para a computação
apresentando os conceitos de:
• subrotina: uma sequência de
instruções que pode ser usada
várias vezes;
• loop: estrutura que permite a
repetição de uma série de cartões;
• salto condicional: permite saltar
um ou mais cartões caso uma
condição seja satisfeita.
ATENÇÃO!
Todos esses conceitos são base da
computação moderna.
Em 1854, George Boole propõe e apresenta
uma nova Álgebra (Álgebra Booleana),
tendo por base a aplicação de operadores
lógicos (E, OU, NÃO) a elementos
algébricos.
Herman Hollerit, em 1886, inventa um
sistema para codificação de letras,
11. ARQUITETURA DE
COMPUTADORES
unidade 1
006
algarismos e símbolos, sob a forma
de perfurações realizadas em um
cartão de papel, e constrói máquinas
eletromecânicas (tabuladoras) que,
mediante um programa armazenado
externamente, realizam a leitura dos dados
dos cartões e efetuam cálculos com os
dados lidos, de modo a obter resultados
sob formas previamente programadas.
A utilização deste tipo de máquina sofre
grande expansão ao longo dos anos,
quando são acopladas às calculadoras
eletromecânicas (mais tarde foram usadas
válvulas eletrônicas) interpretadoras,
separadoras/intercaladoraseimpressoras.
Existiam equipamentos especializados
para operações específicas, por exemplo,
a separadora/intercaladora de cartões
perfurados, as quais funcionavam com
programas fixos. Para agrupar em ordem
crescente um conjunto de cartões com
um código de 5 algarismos, era necessário
repetir a operação 5 vezes: uma vez para
cada coluna perfurada. A construção
e comercialização de tabuladoras deu
origem à criação de grandes empresas nos
Estados Unidos, como, por exemplo, a IBM
- International Business Machines.
Em 1936 o alemão Konrad Zuse apresenta
o primeiro computador eletromecânico,
denominado Z1. O computador executava
cálculos lidos em fitas perfuradas
(FIGURA 4).
FIGURA 4 - Z1
Fonte: Site Wikimedia Commons. Zuse.
Howard Aiken produz, em 1944, um
computador baseado nos conceitos da
máquina de Babbage. De codinome Harvard
Mark I, era um computador totalmente
eletromecânico, construído através de uma
parceria entre a Universidade de Harvard
e a IBM para a Marinha Americana, que
desejava uma calculadora de tabelas para
uso na navegação.
FIGURA 5 - Harvard Mark I
Fonte: Site “Wikimedia Commons”. Harvard Mark I
Computer – Right Segment.
Paralelamente ao desenvolvimento do
Mark I, sob a liderança dos engenheiros
J. Presper Eckert e John Mauchly e com
o patrocínio do Exército Americano, em
1946 é construído o primeiro computador
12. ARQUITETURA DE
COMPUTADORES
unidade 1
007
FIGURA 6 - ENIAC
Fonte: Site “Museu do Computador.
FIGURA 7 – Arquitetura
de John Von Neumann
Memória
Principal
Dispositivos
de entrada e
saída
UCP/CPU
Fonte: Elaborado pelo Autor.
O Professor John Von Neumann publica,
em1946,umtrabalhointitulado“Electronic
Discrete Variable Automatic Computer”,
em que apresenta uma organização lógica
otimizadaparaoprojetoedesenvolvimento
de computadores, a qual é usada até hoje
nos projetos de computadores sendo
conhecida como Arquitetura de Von
Neumann, demonstrado pela FIGURA 7.
A estrutura apresentada é formada pela
Unidade Central de Processamento (CPU
ou UCP), responsável pelo processamento
de dados e controle das operações do
computador, que contém a Unidade Lógica e
Aritmética. Externamente a essa UCP, existe
o conjunto de dispositivos denominados
genericamente de periféricos e uma
unidade de memória que é responsável pelo
armazenamento de dados. Von Neumann
também apresentou as ideias a seguir.
• A implementação de um
computador que funcionava com
o programa armazenado, em
contraste ao modelo usado na
época, em que o programa era
lido diretamente do dispositivo de
entrada e saída.
a válvulas da história, o ENIAC – Eletronic
Numeric Integrator and Calculator. Ele
foi projetado para auxiliar no cálculo de
trajetórias balísticas. A programação do
ENIAC era realizada através de reconexão
dos fios de um painel principal, e os
ajustes dos dados eram efetuados por
botões rotativos localizados em diversos
outros painéis.
13. ARQUITETURA DE
COMPUTADORES
unidade 1
008
• A redução do volume de cabos
e fios, empregando o sistema
numérico binário em detrimento
ao decimal utilizando a escala
de 10:1 pares de fios, ou seja,
para representar números de dois
dígitos decimais, eram necessários
10 pares de fios usando o sistema
decimal; para o sistema binário,
é necessário usar no máximo 4
pares para representar os mesmos
números.
• A implementação da proposta
de Boole, quanto à utilização
do sistema binário, era
tecnologicamente mais adequada.
Considerando todas as propostas de Von
Neumann, em 1946 iniciou a construção
do computador EDVAC, que entrou em
operação em 1951.
FIGURA 8 - EDVAC
Fonte: BLOG INFORMÁTICA SIMPLES E FÁCIL, 2013.
Uma abordagem alternativa a proposta por
Von Neumann (FIGURA 9), é a chamada
Arquitetura Harvard, diferindo apenas
na configuração e acesso à unidade de
memória, que passa a ser tratada de
forma segmentada, ou seja, uma unidade
para armazenamento de dados e outra
para armazenamento de programas.
Esta alternativa apresenta uma melhoria
no desempenho, mas incrementando o
custo de produção do computador. Esta
arquitetura foi idealizada por Howard
Aiken, com o apoio da IBM e da Marinha
Americana, originando do computador
Havard Mark, durante o período da
Segunda Guerra Mundial.
14. ARQUITETURA DE
COMPUTADORES
unidade 1
009
Em 1948, nos Laboratórios BELL, nos Estados Unidos, é inventado o transistor, que
contribuirá, a partir de 1960, para:
• a miniaturização dos circuitos eletrônicos;
• a redução do volume físico dos computadores;
• o aumento do desempenho computacional;
• a popularização dos computadores.
FIGURA 10 - Transistor
Fonte: HAUTSCH, 2010.
No final da década de 1970 e início dos anos 1980, Clive Sinclair, no Reino Unido, concebe
um computador minúsculo denominado ZX81, que integra na sua máquina um interpretador
para uma linguagem de programação (BASIC - Beginers All-purpose Symbolic Instruction
Code), utilizando como periféricos, além de um teclado de membrana, um receptor de TV e
um gravador de “cassetes” musical para gravar os dados. A capacidade da memória desse
computador era cerca de 8 vezes maior que a do ENIAC.
FIGURA 9 - Arquitetura Harvard
Memória
de Dados
Memória
de Instruções
Dispositivos de
entrada e saída
UCP/CPU
Fonte: Elaborado pelo Autor.
15. ARQUITETURA DE
COMPUTADORES
unidade 1
010
FIGURA 11 - ZX81
Fonte: Site “Wikimedia Commons”. Sinclair ZX81.
Paralelamente, Steven Jobs e Steven
Wozinak, nos EUA, concebem, segundo
os mesmos princípios de miniaturização,
facilidade de utilização e baixo preço,
um computador que denominam Apple
I. Vários fabricantes iniciam, nessa
época, a produção em larga escala de
computadores de uso pessoal, de fácil
utilização e baixo preço.
Fonte: Site “Planeta Gadget”.
Após esta viagem do tempo na
computação aprendendo sobre a origem
dos computadores atuais, iremos entender
um pouco mais sobre a arquitetura e a
organização dos computadores.
FIGURA 12 - Apple I
ARQUITETURA E
ORGANIZAÇÃO DE
COMPUTADORES
ARQUITETURA DE
COMPUTADOR
São estudos sobre comportamento funcional
de um computador, do ponto de vista do
programador, com impacto direto sobre a
execução lógica de um programa. Trabalham
comosatributosqueosistemacomputacional
possui e que são visíveis aos programadores.
A arquitetura de um computador pode
sobreviver por muito tempo. Exemplos:
• o conjunto de instruções válidas
para uma determinada máquina;
• o número de bits usados para a
representação de dados;
• os mecanismos de E/S (Entrada e
Saída);
• técnicas de endereçamento de
memória.
16. ARQUITETURA DE
COMPUTADORES
unidade 1
011
FIGURA 13 - Computador de seis níveis
Computador de 6 níveis
Nível de linguagem
orientada para
solução de problemasNÍVEL 5
Nível da arquitetura
do conjunto de
instruções (ISA)NÍVEL 2
Nível de linguagem de
montagem (assembly)
Nível da
microarquitetura
Nível lógico
digital
NÍVEL 4
NÍVEL 1
NÍVEL 0
Nível do sistema
operacional da máquinaNÍVEL 3
Fonte: TANENBAUM, 2006, p.3.
Pela figura anterior, é apresentado um
computador que estrategicamente foi
subdividido em 6 níveis. Veja cada um
deles a seguir:
Nível 0 – Nível lógico digital: é o nível
mais baixo. Representa o verdadeiro
hardware da máquina. São os circuitos
eletrônicos que executam efetivamente
cada instrução da máquina. Neste nível,
os elementos estudados/avaliados são
chamados de portas lógicas e quando
tratados individualmente, realizam
funções elementares padrão (AND, OR,
NOT).
Nível 1 - Nível de microarquitetura: os
elementos são uma combinação de
portas lógicas, os quais conceitualmente
efetuam funções lógicas mais elaboradas.
Somadores aritméticos, comparadores,
registradores são exemplos de elementos
presentes neste nível.
Neste nível é possível encontrar blocos
lógicos capazes de efetuar diversas
operações, como por exemplo, uma
adição. É interessante abstrair toda a
complexidade que envolve a execução
desta operação, esquecendo efetivamente
do circuito eletrônico, da existência de
portas lógicas e simplesmente, definir um
código que representa toda a operação
de adição. Assim é formado o Nível 2
apresentado a seguir.
A arquitetura descreve como será a
interseção entre o hardware e o software.
Para ilustrar melhor este conceito,
considere que um computador pode
ser subdividido em partes dispostas
hierarquicamente em diversos níveis,
onde a complexidade em termos de
implementação do nível mais baixo não é
visível para o nível superior.
17. ARQUITETURA DE
COMPUTADORES
unidade 1
012
Nível 2 - Nível de arquitetura do conjunto
de instruções (ISA – Instruction Set
Architecture): apresentam-se os
códigos que representam efetivamente
cada operação que pode ser realizada
pelo hardware. Neste nível é definida a
linguagem de máquina de um determinado
computador. Deve-se observar que o
projeto de qualquer computador começa
pela definição do conjunto de instruções
do mesmo. É neste nível que se concentra
o estudo desta disciplina.
Nível 3 - Nível de sistema operacional
da máquina: esconde a complexidade
de entendimento de hardware e
de funcionalidades específicas do
computador, como por exemplo, como
deve ser efetivamente o processo de
leitura e escrita em uma unidade de
armazenamento em massa. Neste
nível são tratadas funcionalidades
operacionais que permitem o uso dos
recursos de hardware por grande parte
dos usuários.
Nível 4 - Nível de linguagem de montagem
(assembly) e Nível 5 - Nível de linguagem
orientada para solução de problemas:
respectivamente, possibilitam que
usuários mais avançados possam
desenvolver ferramentas/aplicações que
fazem do computador uma poderosa
ferramenta para a solução de problemas.
A visão do computador através deste nível
é mais sofisticada e não apresenta toda a
complexidade dos circuitos eletrônicos.
ORGANIZAÇÃO DE
COMPUTADOR
Trata dos aspectos que são transparentes
aos programadores. Refere-se às
unidades físicas operacionais e suas
interconexões, as quais implementam
uma determinada arquitetura. Temos
como exemplo de objetos tratados em
organização de computadores:
• Sinais de controle
• Interfaces entre o computador e os
periféricos
• Tecnologia de memória
• Tamanho da memória física
• Frequência de clock
A organização de um computador muda
com a evolução tecnológica.
ESTRUTURA E
FUNÇÃO
ESTRUTURA
A estrutura de um computador representa
como os componentes estão ligados.
Podem-se citar quatro componentes
estruturais principais:
18. ARQUITETURA DE
COMPUTADORES
unidade 1
013
FIGURA 14 - Estrutura de um computador
CPU Memória Principal Dispositivos de E/S
Sistema de Interconexão
Fonte: STALLINGS, 2010, p.14.
• Unidade Central de Processamento – CPU;
• Memória Principal;
• Entrada e Saída – E/S;
• Sistema de Interconexão.
A FIGURA 14 ilustra a relação entre estes componentes.
STALLINGS (2010), apresenta os principais componentes estruturais e suas funções como:
• Unidade Central de Processamento - CPU: possui as funções de controlar a operação
do computador e processar os dados.
• Memória Principal: responsável pelo armazenamento dos dados.
• Entrada e Saída – E/S: Transfere dados entre o computador e o ambiente externo.
• Sistema de Interconexão: Estabelece a comunicação entre CPU, memória principal e E/S.
Os principais componentes da Unidade Central de Processamento (CPU) são unidade de
controle, Unidade Aritmética e Lógica (ULA), registradores e interconexão da CPU (FIGURA 15).
FIGURA 15 - Estrutura interna da CPU
ULA
Barramento Interno do CPU
Registradores
Unidade de
Controle
Fonte: STALLINGS, 2010, p.14.
19. ARQUITETURA DE
COMPUTADORES
unidade 1
014
As principais funções de cada componente da CPU são:
• Unidade de Controle: controla a operação da CPU.
• Unidade Lógica e Aritmética (ULA): processamento de dados.
• Registradores: armazenamento interno de dados para a CPU.
• Interconexão da CPU: estabelece a comunicação entre a unidade de controle, ULA e
registradores.
FUNÇÃO
A função de um computador é a descrição da operação de cada componente individualmente
como parte da estrutura.
O computador possui quatro funções básicas:
• Processamento de dados
• Armazenamento de dados
• Transferência de dados
• Controle
Estas funções se relacionam compondo a visão funcional de um computador. Veja a
FIGURA 16.
FIGURA 16 - Visão funcional de um computador
Mecanismo de
Transferência
de Dados
Mecanismo de
Controle
Recurso de
Armazenamento
de Dados
Recurso de
Processamento
de Dados
Fonte: STALLINGS, 2010, p.8.
20. ARQUITETURA DE
COMPUTADORES
unidade 1
015
Transferência Controle
Memória
Processamento
Com estas quatro funções o computador é capaz de realizar poucos tipos de operações, na
verdade, apenas quatro, sendo transferência de dados, armazenamento de dados e duas de
processamento de dados. O QUADRO 1 ilustra estas operações.
QUADRO 1
Operações desempenhadas pelo computador
Operação Descrição Esquema
Transferência de
dados
Armazenamento
de Dados
Processamento
de dados
Processamento
de dados
Transferindo
dados de um
periférico ou linha
de comunicação
para outra
Transferindo
dados do
ambiente externo
para a memória
(leitura) ou vice-
versa (escrita)
Dados na
memória
Dados
transferidos entre
a memória e o
ambiente externo
Transferência Controle
Memória
Processamento
Transferência Controle
Memória
Processamento
Transferência Controle
Memória
Processamento
Fonte: STALLINGS, 2010, p.9.
21. ARQUITETURA DE
COMPUTADORES
unidade 1
016
CONCEITOS
COMPLEMENTARES
A seguir, compreenda alguns conceitos
necessáriosparaoestudodestadisciplina.
São eles:
Computador: Atualmente trata-se de um
dispositivo eletrônico capaz de tratar
informações através de processamento
numérico. São construídos para atender
necessidades específicas ou para uso
geral. O seu surgimento foi motivado
pela necessidade de efetuar cálculos
matemáticos com mais agilidade. Os
modernos computadores são máquinas
digitais, em contraste com os primeiros
modelos de máquinas que usavam
tecnologias e dispositivos analógicos
para processamento.
Hardware: Estrutura física empregada
na construção de um computador
considerando as características visuais,
mecânicas e elétricas. Até os anos
1980, o hardware desenvolvido para um
computador não era compatível com o
hardware de outro computador, mesmo
entre computadores de um mesmo
fabricante. Atualmente, existem padrões
de desenvolvimento e compatibilidade
de hardwares, sendo possível usar um
teclado fornecido pelo “fabricante X”
tanto no “computador A” quanto no
“computador B”.
Software: Termo empregado para
relacionar todos os elementos abstratos
que envolvem o comportamento e o
uso dos computadores. O software
pode ser classificado conforme o seu
relacionamento direto com o hardware
ou com o usuário do computador, sendo
básico, quando foram desenvolvidos para
controlar diretamente um determinado
hardware. Por outro lado, o software que
foi concebido para relacionar ou facilitar
a operação do computador pelo usuário é
classificado como software utilitário.
São exemplos de softwares básicos:
• ossistemasoperacionaisWindows,
Linux, Mac OS, Android;
• os drivers de dispositivos como
impressoras, scanners, câmeras
fotográficas, pendrives;
• tradutores e compiladores de
linguagens para desenvolvimento
de softwares;
• firmwares, softwares que vêm
gravados em alguns dispositivos
eletrônicos (Ipod, televisão, micro-
ondas etc.) e que são comumente
denominados de BIOS.
São exemplos de softwares utilitários:
• softwares usados para navegar
pela internet (Firefox, Chrome,
Internet Explorer);
22. ARQUITETURA DE
COMPUTADORES
unidade 1
017
• softwares para copiar um arquivo
em um pendrive, ouvir músicas no
computador, entre outros.
Programa: Software que representa
os elementos usados para descrever
o comportamento esperado de um
computador, ou seja, o que efetivamente
o computador deverá executar em função
do tempo e das variáveis de controle do
próprio programa. Num nível mais baixo,
entende-secomoadescriçãodasequência
de operações matemáticas, instruções
que um determinado computador deverá
executar para desempenhar uma tarefa.
Essa descrição deverá seguir uma ordem
lógica e uma formalidade em suas
sentenças, o que por sua vez caracteriza
uma linguagem de programação de
computadores.
Linguagem de máquina: É a linguagem
nativa de um computador a qual pode ser
representada por um sequência de zeros
e uns (0’s e 1’s) ou mesmo um gráfico
de sinais elétricos. São as instruções
básicas do computador. Essa linguagem
é considerada a linguagem de mais baixo
nível, por estar relacionada diretamente
com o hardware do computador. Visando
facilitar o desenvolvimento de softwares,
diversos outros níveis e tipos de linguagens
foram desenvolvidos, cada um com
características específicas e voltado para
uma determinada classe de problema
(financeiro, científico, manipulação de
textos etc.), bem como uma maior facilidade
de manipulação por parte do programador.
Tradução (compilação): Como na
verdade o computador só entende/
executa instruções na linguagem de
máquina, é necessário transformar um
programa descrito em uma linguagem
diferente da linguagem nativa de um
computador na linguagem de máquina
própria do computador, que irá executar
o programa (linguagem de máquina).
Para efetuar essa transformação, são
utilizados programas tradutores e/
ou interpretadores de linguagens de
programação de computadores.
O Tradutor transforma ou converte o
programa descrito da “Linguagem X”
para a “Linguagem Y”. A tradução não
é executada parcialmente, o programa
descrito na nova linguagem só é gerado
após a tradução de todo o programa na
linguagem origem. Assim, para executar o
programa na nova linguagem, o processo
de tradução deverá ter sido encerrado
com sucesso, sendo que, de outra forma,
o novo programa não é criado. Somente
após a criação do programa na nova
linguagem é que ele poderá ser executado
pelo computador. Exemplo: compiladores
da “Linguagem C” (Dev-C++).
Interpretação: É o processo que
23. ARQUITETURA DE
COMPUTADORES
unidade 1
018
pode ser implementado por software
ou diretamente por hardware. O
interpretador não gera um novo
programa, ele simplesmente transforma
e imediatamente executa cada instrução
do programa na linguagem origem
diretamente na linguagem destino.
Erros no processo de interpretação
podem ocorrer ocasionando ou não
a parada do processo; isso depende
exclusivamente da implementação
do interpretador. Diferentemente do
tradutor, o interpretador não gera um
novo programa para que futuramente
possa ser executado. Como exemplo
de interpretador, podem-se citar os
navegadores da internet, os quais
recebem programas na linguagem
HTML, interpretando-a e executando
cada um dos seus comandos. Havendo
erros de interpretação, o processo
não é interrompido e, por opção dos
desenvolvedores dos interpretadores,
os erros, às vezes, não são mostrados,
e os resultados referentes à execução
do programa são exibidos na tela do
computador.
Memória: Dispositivo usado para
armazenar conteúdos no formato digital.
Pode ser classificado de acordo com a
sua proximidade à Unidade Central de
Processamento - CPU. Normalmente,
seu volume de armazenamento é medido
em bytes, o que define a unidade mínima
de armazenamento. Tipicamente são
denominados de Memória Principal os
dispositivos externos que estão ligados
diretamente à CPU e que armazenam
o programa e os dados que estão em
execução/processamento. Os dados e
programas que não estão em execução
normalmente são armazenados na
memória secundária ou memória de
armazenamento em massa, a qual está
ligada à CPU indiretamente através dos
dispositivos de Entrada/Saída (I/O - Input/
Output). É importante observar que é
necessário sempre copiar os programas
e dados da memória secundária para a
principal a fim de executá-los. Exemplos:
registradores, cache, HD, pendrive, DVD etc.
Microprogramação: É um programa para
controlar a operação do caminho de dados
em computadores de três níveis. O auge
da microprogramação foi nas décadas
de 60 e 70. Com o crescimento do uso da
microprogramação, os programas ficaram
extensos e consequentemente mais lentos.
Registrador: Tipo especial de memória
formada por uma única célula, localizado
na parte interna da CPU. O acesso ao
registrador é exclusivo da CPU, e ele possui
um tempo de resposta muito superior ao
desempenho da Memória Principal.
Palavra: O termo “Palavra” está associado
ao tamanho ou à largura da célula que
24. ARQUITETURA DE
COMPUTADORES
unidade 1
019
forma cada um dos registradores de uma
CPU. Expressa o número de bits da célula
de cada registrador. Quando se fala de
uma CPU ou Processador de 32 bits, por
exemplo, entre outras características,
está sendo informado que normalmente
os registradores da CPU possuem 32 bits
de largura.
Nesta unidade foram apresentados os
conceitos básicos de computação, bem
como a motivação para o surgimento
dos computadores. Um modelo clássico
de implementação de computador
chamado Arquitetura de Von Neumann,
foi mostrado de forma sucinta. A
necessidade de entendimentos sobre
operações e representações numéricas
são importantes à medida em que
entendemos que os computadores
atuais nada mais são do que complexas
máquinas de calcular. Esta unidade
servirá de base de consulta para o
andamento da disciplina.
PRÁTICA
APLICAÇÃO
Os computadores começaram com um
tamanho físico enorme e uma capacidade de
armazenamento mínimo se comparados aos
padrões atuais. Renan Hamann em seu artigo
intitulado “A evolução dos computadores”,
comenta sobre a quarta geração como a
“Geração dos notebooks” e indaga se a
quinta geração será a dos múltiplos núcleos
(processadores). Em seguida aponta para
uma questão cada vez mais discutida na
sociedade: Processamento Verde.
Hoje, temos notebooks ultrafinos e com
8 núcleos representando altos índices
de capacidade de processamento e
consequentemente de desempenho, o
que mostra que evoluímos em tamanho
e capacidade de processamento.
Infelizmente, pouco se comenta a respeito do
Processamento Verde.
Leia o artigo na integra disponível em: http://
www.tecmundo.com.br/infografico/9421-a-
evolucao-dos-computadores.htm
REVISÃO
Nesta unidade, você conheceu as
gerações de computadores, conforme
apresentado a seguir:
25. ARQUITETURA DE
COMPUTADORES
unidade 1
020
QUADRO 2
Resumo das gerações de computadores
Geração Datas Tecnologia
Velocidade (operações
por segundo)
1 1946-1957 Válvula 40.000
2 1958-1964 Transistor 200.000
3 1965-1971 Circuitos integrados em baixa (SSI) e média escala 1.000.000
4 1972-1977 Circuitos integrados em grande escala (LSI) 10.000.000
5 1978 Circuitos integrados em alta escala (VLSI) 100.000.000
Também foram abordados os seguintes assuntos:
Fonte: TANENBAUM, 2007 [Adaptado].
QUADRO 3
Resumo dos assuntos abordados
Arquitetura de
um computador
Refere-se aos
atributos visíveis
ao programador
com impacto
direto sobre a
execução lógica
de um programa.
Atributos:
conjunto de
instruções,
número de bits
usados para a
representação
de dados,
mecanismos de
E/S e técnicas de
endereçamento
de memória.
Como a
arquitetura é
implementada,
ou seja, unidades
operacionais
e suas
interconexões.
Atributos: sinais
de controle,
interfaces entre
computador e
os periféricos e
a tecnologia de
memória.
É a descrição
da operação de
cada componente
individualmente
como parte da
estrutura.
Funções
Básicas de um
computador:
• Processamento
de dados
• Armazenamento
de dados
• Transferência de
dados
• Controle
Representa como
os componentes
estão ligados.
Principais
componentes
estruturais:
• Central de
Processamento
- CPU: controla
a operação do
computador e
processamento
de dados.
Principal:
armazena dados.
Entrada e Saída
– E/S: transfere
dados entre o
computador e o
ambiente externo.
• Sistema de
Interconexão:
estabelece a
comunicação
entre CPU,
memória principal
e E/S.
Família de modelos
de Computadores:
• mesma arquitetura
e diferentes
organizações.
• Preços e
características
de desempenho
diferentes.
A Arquitetura de
um computador
pode sobreviver por
muito tempo.
A organização
muda com
a evolução
tecnológica.
•Microcomputadores:
relação de
arquitetura e
organização muito
estreita.
Organização de
um computador
Arquitetura x
Organização
Função de um
computador
Estrutura de um
computador
Fonte: Elaborado pelo Autor.
26. ARQUITETURA DE
COMPUTADORES
unidade 1
021
A necessidade de entendimentos sobre
operações e representações numéricas
são importantes à medida em que
entendemos que os computadores
atuais nada mais são do que complexas
máquinas de calcular. A próxima unidade
(Sistemas Numéricos) servirá de base de
consulta para rever e discutir os conceitos
dos sistemas numéricos usados na
computação.
MAIS
PARA SABER
O Museu do Computador é um espaço físico
localizado em São Paulo/SP composto de
vários equipamentos que remontam a história
da computação. O seu site tenta promover,
às pessoas que não podem fazer visitações,
a mesma riqueza de detalhes e curiosidades.
Conhecer o passado da computação é criar
bases para entender suas tendências atuais e
futuras.
Site “Museu do computador”. Disponível em:
http://www.museudocomputador.com.br/.
Acesso em: 06 jan. 2014.
O vídeo a seguir retrata muito bem a história e
o acervo do Museu do Computador.
MUSEU DO COMPUTADOR. Olhar digital. (4min.
4seg.): son. color. Port. Disponível em: http://
olhardigital.uol.com.br/video/museu-do-
computador/11962. Acesso em: 06 jan. 2014.
A matéria disponível no link a seguir
explica de forma simples os componentes
do computador com foco no hardware.
Na verdade, são as características mais
divulgadas dos computadores. É interessante
observar os detalhes e anotar os itens que você
não entendeu a funcionalidade. Ao final desta
disciplina você terá condições de compreender
o significado de cada componente descrito
pelo autor.
APRENDAINFORMÁTICAFACIL.Disponívelem:
http://www.aprendainformaticafacil.com.
br/2013/02/componentes-do-computador.
html#.UtF4Pfv67H0. Acesso em: 06 jan. 2014
28. unidade 2
023
ARQUITETURA DE
COMPUTADORES
SISTEMAS
NUMÉRICOS
O
s sistemas numéricos são mecanismos que definem os símbolos numéricos e as
regras para a manipulação e representação dos valores a serem registrados. Na
Antiguidade, duas formas de representar quantidades foram inventadas. Nesses
sistemas, independentemente da posição que ocupavam na representação numérica, os
símbolos/algarismos tinham um valor inerente a ele, “predefinido” (sistema numérico
não-posicional).
Inicialmente, os egípcios criaram um sistema em que cada conjunto de 10 unidades era
representado por um símbolo diferente.
FIGURA 17 - Sistema Numérico egípcio
Fonte: Site Free Math Worksheets”.
29. unidade 2
024
ARQUITETURA DE
COMPUTADORES
Se escolhêssemos símbolos ao acaso e
usássemos:
# para representar uma centena,
para representar uma dezena e
@ para representar uma unidade,
teríamos que ###@ representaria 321.
Fonte: Núcleo de Educação a Distância (NEaD),
Ănima, 2014.
O segundo sistema desenvolvido foi o
sistemadenumeraçãoromano,noqualsão
usados símbolos (letras) que representam
as quantidades. Por exemplo:
• I (valendo 1),
• V (valendo 5),
• X (valendo 10),
• C (valendo 100) etc.
A regra de posicionamento determina que
as letras que representam quantidades
menores e precedem as que representam
quantidades maiores sejam somadas;
se o inverso ocorre, o menor valor deve
ser subtraído do maior (e não somado).
Assim, o número 128 é representado em
algarismos romanos por CXXVIII (= 100 +
10 + 10 + 5 + 1 + 1 + 1 = 128). Por outro
lado, o valor 94 é representado por XCIV (=
(-10 + 100) + (-1 + 5) = 94).
Nesses sistemas, os símbolos tinham um
valor intrínseco, independentemente da
posição que ocupavam na representação
(sistema numérico não-posicional).
Um grande problema desse sistema
é a dificuldade de realizar operações
com essa representação. Experimente
multiplicar CXXVIII por XCIV! Assim,
posteriormente, foram criados sistemas
em que a posição dos algarismos no
número passou a alterar seu valor. São
os sistemas numéricos posicionais,
ponto de partida para o estudo desta
unidade.
Nesta unidade, iremos rever e discutir os
conceitos de sistemas numéricos usados
na computação. Desenvolver habilidades
para conversão numérica entre os
sistemas numéricos decimal, binário,
octal e hexadecimal. Entender o processo
de representação e armazenamento de
dados numéricos nos computadores
modernos. Facilitar o entendimento
para diferenciação dos tipos de dados
de uma linguagem de programação de
computadores. Vamos lá!
30. unidade 2
025
ARQUITETURA DE
COMPUTADORES
SISTEMAS
POSICIONAIS
Nos sistemas de numeração posicionais,
o valor representado pelo algarismo no
número depende da posição em que ele
aparece na representação. O primeiro
sistema desse tipo foi inventado pelos
chineses. Eram usados palitos:
• 1 a 5 palitos dispostos na vertical
representavam os números 1 a 5;
• 6 a 9 eram representados por 1 a 4
palitos na vertical, mais um palito
na horizontal (valendo 5) sobre os
demais.
Cada número era então representado por
uma pilha de palitos, sendo uma pilha
para as unidades, outra para as dezenas,
outra para as centenas etc.
Esse sistema, com as pilhas de palitos
dispostas em um tabuleiro, permitia
a realização das quatro operações
aritméticas básicas. Não existia
representação para o zero (o espaço
relativo ficava vazio). O tabuleiro
aritmético (chamado swan-pan), além das
quatro operações, era usado na álgebra
MAIS
SAIBA
Quer saber mais? Acesse o link: http://
pessoal.sercomtel.com.br/matematica/
fundam/numeros/numeros.htm e fique por
dentro sobre a origem dos números.
Atualmente, usamos o sistema de
numeração posicional para representar
todos os valores numéricos em nosso
cotidiano, por exemplo:
• a quantidade de carros que passa
por uma via,
• o valor em reais de uma televisão,
• a idade de uma pessoa etc.
O uso do sistema posicional significa
que a posição ocupada por um algarismo
em um número altera seu valor em uma
potência de 10 (em sistema decimal) para
cada casa à esquerda.
e na solução de equações. Essa técnica
era chamada de Método do Elemento
Celestial.
31. unidade 2
026
ARQUITETURA DE
COMPUTADORES
EXEMPLO
Por exemplo, no sistema decimal (base 10), no
número 125:
• o algarismo 1 representa 100 (uma centena
ou 102),
• o 2 representa 20 (duas dezenas ou 1 x
10
1
) e
• o 5 representa 5 mesmo (5 unidades ou 5
x 10
0
).
Assim, em nossa notação, 125 = 1 x 10
2
+ 2
x 10
1
+ 5 x 10
0
.
BASE DE UM
SISTEMA NUMÉRICO
Abasedeumsistemadenumeraçãoindica
a quantidade de algarismos disponíveis
para a representação/formação numérica.
A base 10 é hoje a mais comum, embora
não seja a única utilizada. No comércio
pedimos uma dúzia de rosas ou uma
grosa de parafusos (base 12) e também
marcamosotempoemminutosesegundos
(base 60). Os computadores, por sua
vez, utilizam a base 2 (sistema binário),
e os programadores em linguagem de
baixo nível, por facilidade, usam em
geral uma base que seja uma potência
de 2, tal como 2
4
(base 16 ou sistema
hexadecimal), ou eventualmente ainda
2
3
(base 8 ou sistema octal).
• Na base 10, dispomos de 10
algarismos para a representação do
número: {0, 1, 2, 3, 4, 5, 6, 7, 8 e 9}.
• Na base 2, são apenas 2
algarismos: 0 e 1.
• Na base 16, utilizamos 16: os 10
algarismos aos quais estamos
acostumados, mais os símbolos
A, B, C, D, E e F, representando
respectivamente 10, 11, 12, 13, 14
e 15 unidades.
Notação: Para identificar a base que em
que o número está, coloca-se o número
da base no canto inferior direito do
número.
Numerobase
Por exemplo, o número 2 na base 8 será
escrito como 28.
A TABELA 1 ilustra as características:
notação, quantidade de algarismos e os
algarismos das diversas bases:
1 centena (100 ou 10
2
)
125 5 unidades (5 ou 5 x 100
)
2 dezenas (20 ou 2 x 101
)
32. unidade 2
027
ARQUITETURA DE
COMPUTADORES
TABELA 1 - Características das bases 2, 8, 10 e 16
TABELA 2 - Equivalências entre as bases 2, 8, 10 e 16
BASE
BASE 10 BASE 2 BASE 8 BASE 16
NOTAÇÃO QUANTIDADE DE
ALGARISMOS
ALGARISMOS
base 2 binária
base 8 octal
base 10 decimal
base 16 hexadecimal
númerob
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Número2
Número 8
Número10
Número16
2 algarismos
8 algarismos
10 algarismos
16 algarismos
b algarismos
0 e 1
0, 1, 2, 3, 4, 5, 6 e 7
0, 1, 2, 3, 4, 5, 6, 7, 8 e 9
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e
F. O algarismo A representa o 10 na
base 10, o B representa 11, até o F
que representa o 15.
Variando entre 0 e b-1
Fonte: Elaborada pelo Autor.
Fonte: Elaborada pelo Autor.
A tabela a seguir ilustra a equivalência entre as bases. Por exemplo, o número 12 na base
10, equivale ao número 1100 na base 2, 14 na base 8 e C na base 16, Assim,
1210 = 11002 = 148 = C16
33. unidade 2
028
ARQUITETURA DE
COMPUTADORES
Generalizando, temos que uma base b qualquer disporá de b algarismos, variando entre 0 e
(b-1). A representação do número 125,3810
(base 10) significa 1x10
2
+ 2x10
1
+ 5x10
0
+ 3x10
-1
+ 8x10
-2
. Assim, para representar uma quantidade N qualquer, numa dada base b, com um
número tal como segue, temos:
Parte fracionáriaParte inteira
Nb
= an
.bn
+ .... + a2
.b2
+ a1
.b1
+ a0
.b0
+ a-1
.b
-1
+ a-2
.b
-2
+ .... + a-n
.b
-n
(Expressão 1)
Sendo que:
an
.b
n
+ .... + a2
.b
2
+ a1
.b
1
+ a0
.b
0
é a parte inteira (Expressão 2)
e
a-1
.b
-1
+ a-2
.b
-2
+ .... + a-n
.b
-n
é a parte fracionária. (Expressão 3)
O maior número que pode ser representado na base 10 usando 3 algarismos será 999 (ou
seja, 103
- 1 = 999).
Genericamente falando, podemos ver que o maior número inteiro N que pode ser
representado, em uma dada base b, com n algarismos (n “casas”), será N = b
n
– 1, assim
como o menor número inteiro com n algarismos será formado por n vezes o primeiro
algarismo da base em questão, ou seja, o algarismo 0 (zero). Ainda, a quantidade de
números distintos a serem representados em uma base numérica b está relacionada com
a quantidade de algarismos/dígitos ou casas numéricas usadas para a representação
numérica. Então, a quantidade de números distintos a serem representados na base b
com n algarismos é determinada pela equação b
n
.
34. unidade 2
029
ARQUITETURA DE
COMPUTADORES
EXEMPLOS
• Base 10 com dois dígitos (n=2 e
b=10): é possível representar 102
= 100
números distintos, variando de 0 a 99.
• Base 2 com dois dígitos (n=2 e b=2):
é possível representar 22
= 4 números
distintos, variando de 00 a 11.
• Base 10 com três dígitos (n=3 e b=10):
é possível representar 103
= 1000
números distintos, variando de 0 a 999.
• Base 2 com dois dígitos (n=3 e b=2):
é possível representar 23
= 8 números
distintos, variando de 000 a 111.
Nos sistemas de numeração, usamos o
termo algarismo/dígito mais significativo
para referenciarmos o algarismo ou dígito
mais à esquerda de uma dada representação
numérica. Por outro lado, o termo algarismo/
dígito menos significativo está associado ao
dígito mais à direita de um número. Tomando
como exemplo o número 8672, temos como
dígito mais significativo o algarismo 8, e o 2
como o menos significativo. Podemos dizer
que o algarismo 7 é o segundo dígito menos
significativo, bem como o terceiro mais
significativo e assim por diante.
Os computadores modernos utilizam
o sistema binário, isto é, todas
as informações armazenadas ou
processadas no computador são
representadas usando apenas duas
grandezas físicas, que matematicamente
são representadas pelos algarismos 0
e 1. Essa decisão de projeto deve-se à
maior facilidade de representação interna
no computador, que é obtida através
de dois diferentes níveis de tensão ou
mesmo corrente. Havendo apenas dois
algarismos, portanto dígitos binários,
o elemento mínimo de informação nos
computadores foi denominado bit, que é o
acrônimo de binary digit.
REPRESENTAÇÃO
BINÁRIA
MAIS
SAIBA
Acesse o link: http://www.
aprendainformaticafacil.com.br/2013/01/
bit-e-byte-sistema-ou-linguagem-binaria.
html#.UtGuo_v67H0 e aprenda um pouco
mais sobre números binários.
35. unidade 2
030
ARQUITETURA DE
COMPUTADORES
Na base 2, o número representado pela
sequência “10” é correspondente ao
número dois na base 10, ou seja, 102
=
210.
Então podemos afirmar que dez é igual a
dois?
– Não, dez não é e nunca será igual a dois!
Na verdade, a sequência dos algarismos
1 e 0, ou seja, “10”, não significa
necessariamente o número “dez”. Como
estamos acostumados a associar “10” a
“dez”, pois sempre pensamos no sistema
de numeração decimal, achamos estranho
falar que “10” é igual a 2. Considere as
observações abaixo:
• o número 102
deve ser lido como
“um-zero” na base 2 e equivale ao
número 2 na base 10 (210
);
• o número 105
deve ser lido com
“um-zero” na base 5 e equivale ao
número 5 na base 10 (510
);
• o número 1010
pode ser lido como
“um-zero” na base 10, ou como
“dez” na base dez.
• 1016
, lido como “um-zero” na base
16, equivale ao número 1610
.
Portanto, “10” só será igual a “dez” se, e
somentese,onúmeroestiverrepresentado
na base dez.
MAIS
SAIBA
O número “10b
” é sempre igual à base, porque,
em uma dada base b, os algarismos possíveis
vão ser sempre de 0 a (b - 1). Como o maior
algarismo possível em uma dada base b é
igual a (b-1), o próximo número será (b - 1
+ 1 = b) e, portanto, será sempre 10. Assim,
numa dada base qualquer, o valor da base será
sempre representado por “10”.
ATENÇÃO!
Toda vez que um número for apresentado
sem que seja indicado em qual sistema
de numeração ele está representado,
entenderemos que a base é dez. Sempre
que outra base for utilizada, a base será
obrigatoriamente indicada por um índice na
sequência do número.
Considerando que a representação
numérica binária é um sistema de
numeração posicional, o algarismo 1
representa valores (pesos) diferentes e
compatíveis com a sua posição relativa
no número. Como o algarismo 0 indica
um valor nulo, o valor representado por ele
sempre será zero, independentemente de
sua posição no número. Assim, é possível
representar todos os demais números
36. unidade 2
031
ARQUITETURA DE
COMPUTADORES
decimais no sistema binário, através da soma dos pesos dos algarismos 1 na representação
numérica binária. Observe pela TABELA 3 como são formados os números em binário e
seus correspondentes em decimal.
TABELA 3 – Exemplos de representação em binário
Fonte: Elaborado pelo Autor.
REPRESENTAÇÃO EM
OCTAL E EM HEXADECIMAL
Em ambientes computacionais, é comum representar números usando sistemas numéricos em
potências de dois, como o sistema octal e o sistema hexadecimal. Essa técnica visa reduzir o
número de algarismos da representação numérica e, consequentemente, facilitar a compreensão
da grandeza e evitar erros. No sistema octal (base 8), cada três algarismos do sistema binário
são representados por apenas um algarismo octal (de 0 a 7). No sistema hexadecimal (base 16),
cada quatro bits são representados por apenas um algarismo hexadecimal (de 0 a F).
ATENÇÃO!
Convencionalmente, em algumas linguagens de programação, os números na base 16 ou sistema
hexadecimal são grafados com a letra “H” ou “h” após o número.
Por exemplo: FFH significa que o número FF está em hexadecimal.
Não confundir o “H” ou “h” com mais um dígito, mesmo porque em hexadecimal só temos algarismos
até “F” e, portanto, não existe um algarismo “H”. Os números na base 8 ou octal são grafados com o
algarismo zero na parte mais significativa do número; por exemplo: 0326.
37. unidade 2
032
ARQUITETURA DE
COMPUTADORES
Você acabou de conhecer as principais características de cada base. Vamos aprender a
converter um número para outras bases? Acompanhe a seguir.
CONVERSÕES
ENTRE BASES
Como é comum representarmos um número em bases diferentes, dependendo da sua
aplicação, também será necessário aprendermos as regras para esta conversão de bases.
A seguir, apresentaremos as regras para a conversão entre bases.
CONVERSÃO DE NÚMEROS DE UMA BASE B
QUALQUER PARA A BASE 10
De um modo geral, o processo de conversão de números reais em qualquer base numérica
para a base 10 deve considerar a Expressão 1 vista anteriormente:
Nb
= an
.bn
+ .... + a2
.b2
+ a1
.b1
+ a0
.b0
+ a-1
.b-1
+ a-2
.b-2
+ .... + a-n
.b-n
A forma mais conveniente de efetuar a conversão é reescrevendo o número a ser convertido na
sua forma de potência, usando o formato dado pela Expressão 1 e resolvendo a expressão final.
EXEMPLO
A. Converter para a base 10 o número binário 10001110,012
Usando a Expressão 1, temos:
10001110,012
= 1x27
+ 0x26
+ 0x25
+ 0x24
+ 1x23
+ 1x22
+ 1x21
+ 0x20
+ 0x2-1
+ 1x2-2
= 1x128 + 0x64 + 0x32 + 0x16 + 1x8 + 1x4 + 1x2 + 0x1 + 0x0,5 + 1x0,25
= 128 + 0 + 0 + 0 + 8 + 4 + 2 + 0 + 0 + 0,25
= 142,25
38. unidade 2
033
ARQUITETURA DE
COMPUTADORES
b. Converter para decimal o número 361,458
Pela Expressão 1, temos:
3618
= 3x8
2
+ 6x8
1
+ 1x 8
0
+ 4x8
-1
+ 5x8
-2
= 3x64 + 6x8 + 1x1 + 4x0,125 + 5x0,015625
= 192 + 48 + 1 + 0,5 + 0,078125
= 241,578125
c. Converter para decimal o número 1BC16
Com a Expressão 1, temos:
1BC,416 = 1x16
2
+ B16x16
1
+ C16x16
0
+ 4x16
-1
Para o processo de conversão, deve-se
considerar que os algarismos da base 16 de
A à F correspondam aos números decimais de
10 a 15, respectivamente. Então, reescrevendo
a expressão, temos:
1x16
2
+ B16x16
1
+ C16x16
0
+ 4x16
-1
= 1x16
2
+ 11x16
1
+ 12x16
0
+ 4x16
-1
= 1x256 + 11x16 + 12x1+ 4x0,0625
= 256 + 176 + 12 + 0,25
= 444,25
CONVERSÃO DE
NÚMEROS DA BASE 10
PARA UMA BASE b
QUALQUER
A conversão de números da base dez para
uma base qualquer segue um processo
inverso ao descrito acima. O processo
é dividido em duas etapas, sendo uma
para a parte inteira e outra para a
parte fracionária. No final, os números
encontrados em cada etapa deverão ser
concatenados com o separador vírgula.
Processo para a parte inteira do número
O número decimal deverá ser dividido
sucessivas vezes pela base, sendo que
o resto de cada divisão deverá ocupar
sucessivamente as posições de ordem
menos significativas do número, até que
o resto da última divisão, que resulta em
quociente zero, ocupe a posição de ordem
mais significativa. Tome como exemplo a
conversão do número 326 para a base 2,
base 8 e base 16:
39. unidade 2
034
ARQUITETURA DE
COMPUTADORES
FIGURA 18 - Processo de conversão de decimal para binário
FIGURA 19 - Processo de conversão de decimal para octal
Fonte: Elaborado pelo Autor.
Fonte: Elaborado pelo Autor.
40. unidade 2
035
ARQUITETURA DE
COMPUTADORES
Fonte: Elaborado pelo Autor.
FIGURA 20 - Processo de conversão de decimal para hexadecimal
Pelas FIGURAS 18, 19 e 20, é possível verificar o procedimento de conversão de um número
inteiro na base 10 para os sistemas binário, octal e hexadecimal. Deve-se observar que os
restos das divisões são escritos na forma inversa, ou seja, do algarismo menos significativo
para o mais significativo. Ainda, considerando o processo de conversão para a base 16,
quando o resto for maior que 9, deve-se utilizar os respectivos algarismos hexadecimais –
A, B, C, D, E ou F – conforme o caso.
Processo para a parte fracionária do número
O procedimento para encontrar a parte fracionária de um número na nova base consiste
em um processo de multiplicação sucessiva da parte fracionária do número em decimal
pela base destino. A parte inteira do resultado da primeira multiplicação será o valor da
primeira casa fracionária, e a parte fracionária desse número será de novo multiplicada pela
base e assim por diante, até o resultado ser zero ou até encontrarmos o número de casas
fracionárias desejado.
41. unidade 2
036
ARQUITETURA DE
COMPUTADORES
EXEMPLO
Vamos converter 326,651 para a base 2, 8 e 16, com 5 algarismos fracionários:
1. A parte inteira será convertida pelo procedimento descrito no item anterior.
2. A parte fracionária será determinada pelo processo de multiplicações sucessivas,
conforme verificamos nas FIGURAS 21, 22 e 23.
FIGURA 21 - Conversão de decimal fracionário para binário fracionário
Fonte: Elaborado pelo Autor.
42. unidade 2
037
ARQUITETURA DE
COMPUTADORES
FIGURA 22 - Conversão de decimal fracionário para octal fracionário
Fonte: Elaborado pelo Autor.
Fonte: Elaborado pelo Autor.
FIGURA 23 - Conversão de decimal fracionário para hexadecimal fracionário
43. unidade 2
038
ARQUITETURA DE
COMPUTADORES
3. Cada número será montado através da
concatenação da parte inteira com a
parte fracionária, separadas por vírgula:
FIGURA 24 - Formatação final dos números
Binário 326,651 = 101000110, 10100
Octal 326,651 = 506, 51523
Hexadecimal 326,651 = 146, A6A7E
Em todos os casos, a conversão foi
interrompida quando encontramos o
número de algarismos fracionários
solicitado no enunciado. No entanto,
como não encontramos resultado 0 em
nenhuma das multiplicações, poderíamos
continuar efetuando multiplicações
indefinidamente até encontrar (se
encontrarmos) resultado zero. No caso de
interrupção por chegarmos ao número de
dígitos especificado sem encontrarmos
resultado zero, o resultado encontrado
é aproximado, e essa aproximação será
função do número de algarismos que
calcularmos. Assim, se convertermos
os números da FIGURA 24 em decimal,
chegaremos a um valor aproximado.
CONVERSÕES ENTRE
AS BASES 2, 8 E 16
As conversões mais simples são as que
envolvem bases que são potências entre
si. Para converter da base 2 para a base
8, considere que 8 = 2
3
. Então, deve-se
separar os bits de um número binário
em grupos de três bits, começando
sempre do menos significativo para o
mais significativo, e depois converter
cada grupo de três bits para seu
equivalente em octal. Ao final, tem-se
a representação do número binário em
octal.
101010012 = 10.101.0012 (separando em
grupos de 3, sempre começando da direita
para a esquerda)
Considerando que: 0102 = 28
1012
= 58
0012 = 18
Portanto: 101010012 = 2518
Nas conversões entre as bases 2 e 16,
deve ser considerado que 2
4
= 16. Assim,
basta separar o número binário em grupos
de 4 bits e converter parcialmente cada
um dos grupos de 4 bits para hexadecimal.
Observe no exemplo abaixo o processo:
110101011012
= 110.1010.11012
(separando
em grupos de 4 bits, sempre começando do
algarismo menos significativo para o mais
significativo)
EXEMPLOS
Fonte: Elaborado pelo Autor.
44. unidade 2
039
ARQUITETURA DE
COMPUTADORES
Considerando que: 1102
= 616
10102
= A16
11012
= D16
Portanto: 110101011012
= 6AD16
Para convertermos números escritos em
hexadecimal ou octal para binário, devemos
efetuar a operação inversa ao processo de binário
para as bases 8 e 16. Perceba pelos exemplos
abaixo como operar nesse processo de conversão:
A. Converter o número CAFE16 para binário:
1. Como cada dígito hexadecimal corresponde
a 4 dígitos binários, então deve-se converter
parcialmente cada um dos dígitos em
hexadecimal, convertendo primeiro para
decimal e depois para hexa:
C16
= 1210
= 11002
A16
= 1010
= 10102
F16
= 1510
= 11112
E16
= 1410
= 11102
2. Agoraésóconcatenarcadaumdosnúmeros
em binário, obedecendo aposição relativa
de cada um deles. O número final será:
CAFE16
= 1100.1010.1111.11102
B. Converter o número 36218 para binário:
1. Como cada dígito octal corresponde a 3 dígitos
binários, então deve-se converter parcialmente
cada um dos dígitos em octal, convertendo
primeiro para decimal e depois para octal:
38
= 310
= 0112
68
= 610
= 1102
28
= 210
= 0102
18
= 110
= 0012
2. Para finalizar, é só concatenar cada um dos
números em binário, obedecendo a posição
relativa de cada um deles. O número final será:
36218
= 011.110.010.0012
CONVERSÃO DE
NÚMEROS ENTRE DUAS
BASES QUAISQUER
Para converter números de uma base
b qualquer para outra base qualquer, o
processo prático utilizado é o de converter
da base origem para a base 10 e depois da
base 10 para a base destino.
EXEMPLO
Por exemplo: converter o número 577
para a
base 9.
567
= (5x7
1
+ 6x7
0
)10
= 35 + 6 = 4110
41/9 = 4 e resto 5. Logo: 567
= 459
Observe que o processo de conversão
entre as bases 7 e 9 foi efetuado utilizando
as teorias abordadas nas sessões
anteriores, podendo ser aplicado para
qualquer processo de conversão, desde
de que envolva a base 10 como a base de
referência. Para melhorar as habilidades
de manipulação numérica, procure fazer
vários exercícios.
45. unidade 2
040
ARQUITETURA DE
COMPUTADORES
DICAS
Existem várias calculadoras que fazem a
conversão entre bases. Acesse o link: http://
www.calculadoraonline.com.br/conversao-
bases, pratique e utilize esta calculadora
para corrigir seus exercícios.
REPRESENTAÇÃO
DE DADOS
O computador processa instruções
que o orientam na execução de tarefas,
ou seja, o orientam nas operações
sobre valores ou dados. Estes dados
podem ser alfanuméricos, booleanos
(lógicos) ou numéricos. Estes dados são
convertidos internamente em códigos de
representação. Neste tópico estudaremos
algumas formas de representação
numérica (ponto fixo e ponto flutuante) e
de representação alfanumérica.
Iniciaremos com algumas técnicas para
representaçãonuméricadepontofixo:sinal
e magnitude e Representação de números
no formato complementar (Representação
de números positivos em complemento,
Representação de números negativos em
complemento a base, Representação de
números negativos em complemento a
(base -1)). Na representação numérica de
ponto flutuante, a técnica estudada será o
padrão IEEE 754.
As representações não numéricas
ou alfanuméricas serão tratadas
pelos padrões Código de 7 bits ASCII
(American Standard Code For Information
Interchange), O código ASCII estendido 8
bits, Código ISO 8859-1 (Latin-1), ANSI
(American National Standards Institute) e
Unicode.
REPRESENTAÇÕES
NUMÉRICAS
REPRESENTAÇÃO DE NÚMEROS
INTEIROS (PONTO FIXO)
Nos computadores digitais modernos,
a forma mais natural de representação
numérica é o sistema binário, pois o
hardware foi projetado para trabalhar
com a interpretação de somente dois
sinais elétricos distintos. Assim, para a
formação dos algarismos que compõem
os números nos computadores, devem-
se considerar somente esses dois sinais.
Essa é a forma mais adequada e eficiente
para representar e manipular números em
um computador.
Sabemos, contudo, que os números
inteiros podem ser positivos ou negativos.
Então,umaspectoprimordialaserdefinido
46. unidade 2
041
ARQUITETURA DE
COMPUTADORES
é como representar o sinal de um número, pois existem somente dois símbolos disponíveis,
e eles já são usados nas representações numéricas. A solução adotada utiliza um bit para
representar o sinal do número. Convencionalmente, é usado o dígito mais significativo para
indicar o sinal, comumente chamado de bit de sinal. Como um bit pode assumir somente
os valores 0 e 1, ficou convencionado ainda que, se o bit de sinal tiver valor 0, o número é
positivo; caso contrário (1), o número é negativo.
Na TABELA 4 são apresentados dois exemplos da representação de números negativos em
binário, bem como em hexadecimal e octal.
TABELA 4 - Visualização da representação de números inteiros
Observe que, nas representações na base 16 e 8, o bit de sinal é sempre considerado no processo de
conversão, e os símbolos que indicam se o número é positivo ou negativo (+ e -) só devem aparecer
nas representações em decimal.
Fonte: Elaborado pelo Autor.
Observando-se a TABELA 4, verifica-se que, em uma representação binária com n bits, é
possível representar números com (n - 1) bits, pois o bit mais significativo representa o
sinal, e somente os demais bits representam o valor numérico. Essa forma de representar
tem o nome de representação em Sinal e Magnitude (S/M).
47. unidade 2
042
ARQUITETURA DE
COMPUTADORES
REPRESENTAÇÕES EM SINAL E
MAGNITUDE – S/M
Nessa representação, o número deve ser
avaliado por dois campos, sendo que um
deles indica o sinal do número, e o outro, a
sua magnitude. Veja pela FIGURA 25 uma
representação gráfica desse formato.
FIGURA 25 - Visão geral do
formato Sinal e Magnitude
Fonte: Elaborado pelo Autor.
A palavra “magnitude”, nesse contexto,
significa o valor absoluto de um número.
Em outras palavras, refere-se ao
módulo de um número, que pode estar
representado tanto em decimal quanto
em binário, octal, ou mesmo no formato
hexadecimal.
Os valores dos dígitos usados para
representarem a magnitude de um
número independem do sinal desse
número, isto é, sendo o número positivo
ou negativo, a representação da
magnitude será a mesma; o que varia na
representação é apenas o dígito de sinal.
Além da magnitude do número, deve
ser avaliado o seu sinal, que é sempre
determinado pelo seu dígito mais
significativo. O valor zero (0) para esse
dígito indica que o número é positivo.
Para os números negativos, o valor
desse dígito depende da base numérica
utilizada na representação do número.
Como no sistema binário existem
somente dois símbolos disponíveis para
a formação dos números, quando o valor
do bit de sinal for 0 (zero), significa que
o número é positivo e, quando o seu
valor for 1, indica um número negativo.
Tecnicamente falando, o algarismo
usado para indicar o sinal de negativo
é sempre o último símbolo disponível
no sistema numérico. Assim como no
sistema binário o algarismo 1 indica o
sinal de negativo, o algarismo 9 é usado
no sistema decimal para indicar o sinal
de negativo.
É importante ressaltar que, nos sistemas
numéricos octal e hexadecimal, os algarismos
7eFsãousadosparaindicarosinaldenegativo
somente quando o número em questão não
está relacionado com algum número em
binário. Por outro lado, havendo uma relação,
o sinal é obrigatoriamente associado ao dígito
mais significativo do número em binário.
48. unidade 2
043
ARQUITETURA DE
COMPUTADORES
Observe, na FIGURA 26, que a sequência binária 0112
equivale ao valor absoluto 3, ou seja,
módulo de 3. Verifique, ainda, as representações desse mesmo número nos sistemas octal
e hexadecimal.
FIGURA 26 - Equivalência das representações positivas e negativas de um número
Fonte: Elaborado pelo Autor.
Faixa de representação
A representação na base b em Sinal e Magnitude com n bits (incluindo o bit de sinal) possui
b
n
representações, o que permite representar (b
n
-1) números distintos, uma vez que há
duas representações para o zero: uma para o + 0 e outra para o - 0. Deve-se observar
que, no contexto da Matemática, o número 0 não tem sinal, contudo, na Computação, dada
a natureza dos formatos de representações numéricas, devem ser consideradas as duas
representações, ou seja, a positiva e a negativa.
A faixa de representação de números na base 2 em Sinal e Magnitude com n bits (incluindo
o bit de sinal) possui 2
n
representações, sendo possível apresentar os números de - (2
n-1
-1)
a + (2
n-1
-1). Dessa forma, o maior valor inteiro possível é então + (2
n-1
-1), e o menor valor
inteiro é - (2
n-1
-1). Veja a aplicação das fórmulas pelos exemplos abaixo.
1. Considerando que uma determinada máquina trabalha com a representação de números inteiros
no formato S/M de 8 bits, indique, em decimal, o maior e o menor valor que pode ser representado
diretamente nessa máquina.
EXEMPLOS
49. unidade 2
044
ARQUITETURA DE
COMPUTADORES
Desenvolvimento:
Como o menor valor é determinado pela equação {- (2
n-1
-1)}, então:
menor valor = - (2
n-1
-1), onde n é igual a 8;
menor valor = - (2
8-1
-1) = - (128 -1) = - (127) = - 127.
O maior valor é determinado pela equação {+ (2
n-1
-1)}, então:
maior valor = + (2
n-1
-1), onde n é igual a 8;
maior valor = + (2
8-1
-1) = + (128 -1) = + (127) = + 127.
Resposta: Menor valor = - 127; maior valor = + 127.
2. É possível que uma máquina que trabalha com a representação de números inteiros no formato
S/M em 13 bits represente o resultado da multiplicação dos números 1024 e -4 diretamente?
Desenvolvimento:
Primeiro, deve-se considerar que a palavra “diretamente” está se referindo à possibilidade de
representação numérica sem o uso de artifícios matemáticos e computacionais que permitem
a concatenação de números. Em linhas gerais, um computador pode manipular números que vão
além da sua capacidade máxima de representação. É claro que diversos artifícios matemáticos e
computacionais devem ser empregados, mas eles estão fora do escopo inicial desta disciplina.
Num segundo momento, deve-se calcular o limite mínimo de representação numérica na máquina
estudada pela equação {- (2
n-1
-1)}. Então:
menor valor = - (2
n-1
-1), onde n é igual a 13;
menor valor = - (2
13-1
-1) = - (4096 - 1) = - (4095) = - 4095.
Para finalizar, deve-se efetuar a multiplicação dos números envolvidos:
1024 x -4 = - 4096.
Resposta: Não é possível representar o resultado da multiplicação do número 1024 pelo número -4
em uma máquina que manipula números de 13 bits no formato S/M.
50. unidade 2
045
ARQUITETURA DE
COMPUTADORES
Sobre o processo de manipulação numérica,
observe as seguintes considerações:
A.o número de bits para a representação
é determinado no projeto do
computador;
B. em situações nas quais o número a
ser representado excede a capacidade
máxima que uma determinada
máquina pode representar,
é caracterizada um situação
denominada overflow;
C. a situação denominada underflow
é tipicamente caracterizada pela
impossibilidade de representação
de números menores que o menor
número manipulado diretamente pela
máquina;
D. em Sinal e Magnitude, existem duas
representações para o zero.
REPRESENTAÇÃO DE NÚMEROS
NO FORMATO COMPLEMENTAR
Umasegundaalternativaderepresentação
numérica que utiliza os mesmos
algarismos tanto para indicar a magnitude
quanto para indicar o sinal do número, é
a representação complementar. Nela,
deve-se considerar que o complemento
de qualquer número é a diferença entre
o valor de cada algarismo desse número
e o valor do maior número possível com
um mesmo algarismo, da base. Tomando
como exemplo o sistema decimal, no
qual o maior número possível é formado
pela repetição do algarismo 9, pode-se
considerar que o complemento do número
385 é 614, pois:
_ 999
385
614
Note que o maior algarismo da base deve
ser repetido o número de vezes igual à
quantidade de algarismos do número cujo
complemento se deseja calcular. Para
o sistema binário, é simples calcular o
complemento de um número, pois, como
só existem dois símbolos, o complemento
de 0 é 1 e o complemento de 1 é 0. O
complemento do número 1001102
é
0110012
.
Uma vantagem da utilização da
representação em complemento é que
as operações aritméticas são efetuadas
diretamente, sem a necessidade de
avaliação inicial dos operandos, e a
subtração entre dois números pode
ser substituída pela sua soma em
complemento.
51. unidade 2
046
ARQUITETURA DE
COMPUTADORES
REPRESENTAÇÃO DE NÚMEROS
POSITIVOS EM COMPLEMENTO
A representação de números positivos em
complemento não tem qualquer alteração,
isto é, é idêntica à representação em
Sinal e Magnitude, observando-se que o
dígito de sinal é o algarismo zero (0 indica
positivo).
REPRESENTAÇÃO DE NÚMEROS
NEGATIVOS EM COMPLEMENTO A
(BASE -1)
Nesse formato de representação, os
números inteiros negativos são obtidos
a partir da representação positiva de
cada um dos números, com o cálculo
do seu complemento. Dessa forma, ao
calcular o complemento a (base -1) de
um número positivo, encontramos a sua
representação em negativo e vice-versa.
Deve-se lembrar que o dígito de sinal
sempre será o dígito mais significativo
do número. Por convenção, o algarismo/
símbolo usado para indicar o sinal de
negativo é o último algarismo do sistema
numérico, ou seja, o algarismo/símbolo
(base -1). Para entender melhor, observe
os exemplos a seguir.
1. Calcule o complemento a (base - 1) do
número +26110 com 4 algarismos decimais.
Desenvolvimento:
• Determinar (base-1). Como a base é
10, então (base - 1) = (10 – 1) = 9 e o
complemento a (base -1) será igual a
complemento a 9, ou simplesmente C9.
• Normalizaronúmeropara4algarismos.
Como o número +26110
é positivo, então
o dígito de sinal será 0. Portanto +26110
normalizado para 4 dígitos é 026110
.
• Calcular o C9 do número 0261:
_ 9999
0261
9738
Resultado:
Complemento a 9 do número +26110
= 973810
.
2. Calcule o complemento a (base - 1) do
número 951C16, usando 4 algarismos em
hexadecimal.
Observe, na TABELA 5, a relação dos números
binários de 4 dígitos na representação em C1.
EXEMPLOS
52. unidade 2
047
ARQUITETURA DE
COMPUTADORES
TABELA 5 – Representação
binário em C1 com 4 bits
Fonte: Elaborada pelo Autor.
Tal como na representação em Sinal
e Magnitude, sempre que em uma
representação em complemento o
primeiro dígito binário for 1, o número
representado é negativo, sendo que o
dígito mais significativo igual a zero indica
Binário C1
0000
0001
0010
0011
0100
0101
0110
0111
1111
1110
1101
1100
1011
1010
1001
1000
1111
1110
1101
1100
1011
1010
1001
1000
0000
0001
0010
0011
0100
0101
0110
0111
que o número é positivo. Assim, o zero
pode ser representado tanto por 00002
quanto por 11112
.
Faixa de representação
A representação na base b em
complemento a (base -1), com n bits,
possui b
n
representações, o que permite
representar (b
n–1
) valores. O problema
de haver duas representações para o
zero não está solucionado com essa
representação. A faixa numérica da
representação na base 2 no formato
complemento a (base-1), com n bits, é a
mesma que no formato Sinal e Magnitude,
podendo ser calculada como 2 valores,
variando de -(2
n-1
-1) a +(2
n-1
-1), de
forma que o maior valor inteiro positivo
será então +( 2
n-1
-1), e o menor valor
inteiro negativo será -(2
n-1
-1). Abaixo, são
apresentados exemplos de aplicação das
fórmulas.
53. unidade 2
048
ARQUITETURA DE
COMPUTADORES
1. Considerando que uma determinada máquina trabalha com a representação de números inteiros
no formato C1 com 8 bits, indique em decimal o maior e o menor valor que pode ser representado
diretamente nessa máquina.
Desenvolvimento:
Como o menor valor é determinado pela equação {- (2
n-1
-1)}, então:
menor valor = - (2
n-1
-1), onde n é igual a 8;
menor valor = - (2
8-1
-1) = - (128 -1) = - (127) = - 127.
O maior valor é determinado pela equação {+ (2
n-1
-1)}, então:
maior valor = + (2
n-1
-1), onde n é igual a 8;
maior valor = + (2
8-1
-1) = + (128 -1) = + (127) = + 127.
Resposta: Menor valor = - 127; maior valor = +127.
2. É possível que uma máquina que trabalha com a representação de números inteiros no formato C1
em 13 bits represente o resultado da multiplicação dos números 1024 e -4 diretamente?
Desenvolvimento:
Novamente, deve-se considerar primeiro que a palavra “diretamente” está se referindo à possibilidade
de representação numérica sem o uso de artifícios matemáticos e computacionais que permitem a
concatenação de números, já que eles estão fora do escopo inicial desta disciplina.
Num segundo momento, deve-se calcular o limite mínimo de representação numérica na máquina
estudada pela equação {- (2
n-1
-1)}. Então:
menor valor = - (2
n-1
-1), onde n é igual a 13;
menor valor = - (2
13-1
-1) = - (4096 - 1) = - (4095) = - 4095.
Para finalizar, deve-se efetuar a multiplicação dos números envolvidos:
1024 x -4 = - 4096.
Resposta: Não é possível representar o resultado da multiplicação do número 1024 pelo número -4
em uma máquina que manipula números de 13 bits no formato C1.
EXEMPLOS
54. unidade 2
049
ARQUITETURA DE
COMPUTADORES
Assim como no formato S/M, o número de bits dos números manipulados em um computador
que trabalha com o formato de representação C1 depende exclusivamente do projeto do
computador. Situações de overflow e underflow podem ocorrer em função dos números
manipulados. Apesar de continuar com duas representações para o número zero, a aritmética
desse sistema é otimizada, se comparada com a aritmética praticada no formato S/M, o que
torna a representação em C (base-1) mais interessante do que a representação em S/M.
REPRESENTAÇÃO DE NÚMEROS
NEGATIVOS EM COMPLEMENTO A BASE
A representação dos números inteiros negativos em complemento a base é uma alternativa
melhorada dos formatos anteriormente estudados, pois resolve o problema da dupla
representação para o número zero, bem como apresenta uma melhoria no algoritmo da
aritmética. Quanto ao número positivo, deve-se considerar que sua representação é igual
ao formato Sinal e Magnitude e complemento a (base-1). Para calcular o complemento a
base de um determinado número, basta obter o complemento a (base -1) desse número e
somar uma unidade. Veja pelos exemplos abaixo o procedimento de cálculo.
1. Calcule o complemento a base do número +26110 com 4 algarismos decimais.
Desenvolvimento:
• Como a base é 10, então o complemento a base será igual ao complemento a 9 mais uma
unidade, ou seja, C10 = (C9 +1).
• Normalizar o número para 4 algarismos. Como o número +26110 é positivo, então o dígito de
sinal será 0. Portanto, +26110, normalizado para 4 dígitos, é 026110.
• Calcular o C9 do número 0261:
_ 9999
0261
9738
• Somar uma unidade ao resultado do passo anterior, ou seja, como C10 = C9 + 1, então:
EXEMPLOS
55. unidade 2
050
ARQUITETURA DE
COMPUTADORES
9738
+ 1
9739
Resultado: Complemento a 10 do número +26110 = 973910.
2. Calcule o complemento a base do número 951C16
, usando 4 algarismos em hexadecimal.
Desenvolvimento:
• Convém lembrar mais uma vez que convencionalmente, para a computação, não existe
sinal de positivo ou negativo nas representações em binário, octal e hexadecimal. Para essa
indicação, deve ser considerado o número no formato em binário e avaliar o valor do bit mais
significativo (um valor zero indica um número positivo e 1 indica um número negativo). De
toda forma, é só processar o cálculo do complemento a base diretamente.
• Considerando que a base é 16, então base -1 = F.
• Para calcular o CF do número 951C, não é necessário normalizar, pois o número usado já está
com 4 dígitos. Assim, incremente uma unidade ao resultado do item anterior.
Resultado: Complemento 16 do número 951C16 = 6AE416.
Na adição realizada para calcular o complemento a base, quando houver o “vai 1” do
dígito mais significativo, devemos descartá-lo, ao contrário da operação em complemento
a (base – 1), na qual o excesso é incremento ao número restante. Essa regra faz parte
do procedimento usado para efetuar as operações aritméticas. Na FIGURA 27, é possível
visualizar o significado da regra.
FIGURA 27 - Operação aritmética em complemento a base (descartar o “vai 1”)
Fonte: Elaborado pelo Autor.
56. unidade 2
051
ARQUITETURA DE
COMPUTADORES
Adotando o procedimento para cálculo dos números negativos em complemento a base,
pode-se verificar que o número zero possui somente uma representação, ou seja, a
representação positiva; deixa-se a representação negativa para ser usada na representação
de mais um número negativo. Observe na TABELA 6 a relação de números em complemento
2 (C2) de 4 dígitos e o seu correspondente em decimal.
TABELA 6 – Relação de números em C2 4 bits
Faixa de representação
A representação na base b em complemento a base com n bits possui b
n
representações, o
que permite representar bn
valores. Como existe somente uma representação para o zero,
há mais um número negativo representado. Assim, a faixa numérica da representação na
base 2 no formato complemento a base, com n bits, é calculada como 2
n
valores, variando
de -(2
n-1
) a +(2
n-1
-1), de forma que o maior valor inteiro positivo será então +( 2
n-1
-1), e o
menor valor inteiro negativo será -(2
n-1
). Abaixo são apresentados exemplos de aplicação
das fórmulas.
Fonte: Elaborada pelo Autor.
Decimal Binário C2 Hexadecimal Octal
0
+1
+2
+3
+4
+5
+6
+7
-8
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
57. unidade 2
052
ARQUITETURA DE
COMPUTADORES
EXEMPLOS
1. Considerando que uma determinada máquina trabalha com a representação de números inteiros
no formato C2 com 8 bits, indique em decimal o maior e o menor valor que pode ser representado
diretamente nessa máquina.
Desenvolvimento:
Como o menor valor é determinado pela equação {- (2
n-1
)}, então:
menor valor = - (2
n-1
), onde n é igual a 8;
menor valor = - (2
8-1
) = - (128 ) = - (128) = - 128.
O maior valor é determinado pela equação {+ (2
n-1
-1)}, então:
maior valor = + (2
n-1
-1), onde n é igual a 8;
maior valor = + (2
8-1
-1) = + (128 -1) = + (127) = + 127.
Resposta: Menor valor = - 128; maior valor = +127.
2. É possível que uma máquina que trabalha com a representação de números inteiros no formato C2
em 13 bits represente o resultado da multiplicação dos números 1024 e -4 diretamente?
Desenvolvimento:
Novamente, considera-se, em primeiro lugar, que a palavra “diretamente” está se referindo à
possibilidade de representação numérica sem o uso de artifícios matemáticos e computacionais que
permitem a concatenação de números.
Num segundo momento, deve-se calcular o limite mínimo de representação numérica na máquina
estudada pela equação {- (2
n-1
)}. Então:
menor valor = - (2
n-1
), onde n é igual a 13;
menor valor = - (2
13-1
) = - (4096) = - 4096.
Para finalizar, deve-se efetuar a multiplicação dos números envolvidos:
1024 x -4 = - 4096.
Resposta: Sim, é possível representar o resultado da multiplicação do número 1024 pelo número -4,
em uma máquina que manipula números de 13 bits no formato C2.
58. unidade 2
053
ARQUITETURA DE
COMPUTADORES
O número de bits dos números
manipulados em um computador que
trabalha com o formato de representação
C2 depende exclusivamente do projeto
do computador. Situações de overflow e
underflow podem ocorrer em função dos
números manipulados. O procedimento
de execução das operações aritméticas
é otimizado em relação aos demais
formatos de representação, sendo o mais
utilizado nos processadores atualmente.
REPRESENTAÇÃO
DE NÚMEROS REAIS
Por natureza, os números reais
são difíceis de ser representados
computacionalmente, pois exigem
técnicas mais refinadas para
armazenamento e processamento.
Considerando a classe de problema, os
números podem ser muito extensos ou
mesmo infinitos, como dízimas periódicas
e números irracionais. Dessa forma,
truncá-los é inevitável, o que, no final, pode
influenciar negativamente no processo de
cálculo, diminuindo a sua precisão.
Desde os primórdios da computação, duas
abordagens prevalecem para representá-
los. Uma é a técnica denominada
representação em ponto fixo e a outra
é a representação em ponto flutuante.
Explicando melhor, a palavra “ponto” pode
ser substituída pela palavra “vírgula”,
ou seja, representação em vírgula fixa
e em vírgula flutuante. Os problemas
apresentados por essas representações
estão relacionados com a maneira de
registrar a faixa de variação do número e a
sua precisão numérica.
A representação em ponto fixo é a mais
indicada para máquinas projetadas
para aplicações específicas, ou seja,
computadores projetados para uma
determinada classe de aplicações. Nesses
computadores, os limites máximos e
mínimos a serem representados são
definidos diretamente pelo hardware ao
longo do projeto. Por exemplo, se uma
máquina foi projetada para manipular
somente números de 34 dígitos à esquerda
do ponto decimal e 28 dígitos à direita
desse ponto, não será adequado trabalhar
com sistemas que necessitam manipular
números que exigem uma precisão de 40
dígitos à esquerda e 22 dígitos à direita.
Observequeaquantidadededígitosusados
nas representações é a mesma, mas existe
uma restrição específica de hardware que
não permite a variação da posição do ponto.
As representações em ponto flutuante
são mais flexíveis, se considerarmos que
é possível atender a diversas classes de
problemas com uma mesma máquina,
pois podemos, de forma dinâmica, ajustar
tanto o número de dígitos que precedem o
ponto quanto os dígitos que estão à direita
59. unidade 2
054
ARQUITETURA DE
COMPUTADORES
do ponto. Nessa alternativa, a faixa de variação do número está separada da sua precisão
numérica, usando-se o método de notação científica: n = i.f x 10e
, onde n é um número real
e i representa a parte inteira, sendo separado por um ponto de f. O f é conhecido como
fração ou mantissa e e é um número inteiro positivo ou negativo conhecido como expoente.
Observe abaixo alguns exemplos de números expressos nesse formato.
Esse método é conhecido como representação em ponto flutuante. Nele, a faixa de
variação dos números é determinada pela quantidade de dígitos do expoente e a precisão
é determinada pela quantidade de dígitos da mantissa. Como há mais de uma maneira
de representar números nessa notação, deve-se escolher uma delas como padrão. Para
investigar as propriedades desse método de representação de números, considere uma
representação R, com uma mantissa de três dígitos com sinal, na faixa de 0.1≤ | f | 1 ou
zero e um expoente de dois dígitos com sinal. Tais números têm uma faixa de variação 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 ser necessário usar só cinco dígitos e dois sinais para armazenar
números expressos nessa notação.
Os números em ponto flutuante podem ser usados para representar o sistema de números
reais da matemática, apesar de haver algumas diferenças importantes. A FIGURA 28 mostra
um esquema da reta dos números reais visando apresentar essas diferenças.
60. unidade 2
055
ARQUITETURA DE
COMPUTADORES
FIGURA 28 - A reta real dividida em regiões
Fonte: TANENBAUM, 2006, p.405.
A reta foi dividida em sete regiões:
• • números negativos grandes, menores que – 0.999 x 10
99
;
• • números negativos entre – 0.999 x 10
99
e – 0.100 x 10
-99
;
• • números negativos pequenos, com magnitudes menores que 0.100 x 10
-99
;
• • zero;
• • números positivos pequenos, com magnitudes menores que 0.100 x 10
-99
;
• • números positivos entre 0.100 x 10-99 e 0.999 x 10
99
;
• • números positivos grandes, maiores que 0.999 x 10
99
.
A principal diferença entre os números representados com mantissas de três dígitos e
expoentes de dois e os números reais é que a primeira representação não pode ser usada
para expressar números nas regiões 1, 3, 5, ou 7. Se o resultado de uma operação gerar
um número na região 1 ou 7, vai ocorrer um erro de overflow. A razão dessa incorreção é
a natureza finita da representação desses números. Da mesma maneira, um resultado nas
regiões 3 e 5 vai gerar um erro de underflow.
Outra diferença importante entre os números em ponto flutuante e os números reais é a sua
densidade. Entre dois números reais quaisquer, existe outro número real, não importa quanto
um está próximo do outro, pois os números reais variam de forma contínua. Já os números
em ponto flutuante variam de forma discreta, ou seja, existe uma determinada quantidade
-10
100
10
100
-10
-100
10
-100
61. unidade 2
056
ARQUITETURA DE
COMPUTADORES
de números em ponto flutuante que
podem ser representados. Se o resultado
de uma operação não puder ser expresso
na representação usada, será efetuado
um arredondamento. Essa operação
consiste em escolher o número mais
próximo do resultado esperado. Em outras
palavras, usando-se a representação em
ponto flutuante, existe um erro relativo
introduzido pelo arredondamento, tanto
para números grandes quanto para
números pequenos.
REPRESENTAÇÃO IEEE 754 PARA
NÚMEROS EM PONTO FLUTUANTE
Nos computadores, é utilizada uma
variante da representação em ponto
flutuante denominada IEEE 754, podendo
ser de precisão simples ou dupla, com
32 ou 64 bits respectivamente. Por
questões de eficiência, a exponenciação
e a representação da mantissa são feitas
na base 2, em detrimento da base 10.
Deve-se considerar, ainda, que a parte
inteira da representação possui somente
um bit, e que o valor desse bit deve ser
sempre um. Para satisfazer tal condição,
é necessário que o bit mais à esquerda
da mantissa seja deslocado uma
posição à esquerda, sendo o expoente
decrementado de uma unidade, sem que
o valor do número sofra modificações,
até que a condição seja satisfeita. Essa
representação normalizada é melhor que
a não normalizada, pois garante somente
uma forma de representar o número.
Além disso, a combinação do 1 implícito
(parte inteira em binário), do ponto binário
implícito e do 23 ou 52 bits é chamada de
significante, em vez de mantissa.
Usando o conceito de significante
e visando garantir maior eficiência
computacional, a parte inteira do número,
bem como o ponto binário, não são
armazenados de acordo com o formato
IEEE 754. Na FIGURA 29, são apresentados
os formatos em precisão simples e dupla.
Perceba que é o somatório da quantidade
de bits de cada campo que define a
precisão da representação.
62. unidade 2
057
ARQUITETURA DE
COMPUTADORES
FIGURA 29 - Formatos IEEE 754. (a) Precisão simples - (b) Precisão dupla
Fonte: TANENBAUM, 2006, p.407
AscaracterísticasnuméricasdosnúmerosempontoflutuanteexpressosnoformatoIEEE754
são apresentadas na TABELA 7. Perceba que o expoente é representado em excesso, de 127
ou 1023, conforme o caso. Esse tipo de representação é usado para não haver necessidade
de armazenamento de números negativos no expoente, pois, se desejamos armazenar o
valor -127 como expoente de um número em ponto flutuante, devemos adicionar 127, o que
resultará no valor zero. Se o expoente é menor que -127 ou maior que +127 não, é possível
armazenar usando o padrão IEEE 754. Outra consideração sobre a TABELA 7 é sobre o valor
do bit de sinal do número. Quando o valor desse bit for zero, o número é positivo; se o valor
for 1, o número é negativo.
TABELA 7 – Características do formato IEEE 754
Fonte: TANENBAUM, 2006, p.407.
Item Precisão simples Precisão dupla
Bits do campo de sinal 1 1
Bits do campo de expoente 8 11
Bits do campo da mantissa / significante 23 52
Número total de bits 32 64
Sistema de representação do expoente Excesso 127 Excesso 1023
Faixa de variação do expoente -126 a +127 -1022 a +1023
63. unidade 2
058
ARQUITETURA DE
COMPUTADORES
O padrão IEEE 754 define alguns outros tipos numéricos para atender situações nas quais
os números não estão normalizados ou mesmo indicar situações críticas de operações
aritméticas. O formato especial chamado NaN (NOT a Number) indica, por exemplo, o
resultado de infinito dividido por infinito, que é indefinido. Veja a relação dos formatos IEEE
754 na TABELA 8.
TABELA 8 – Tipos de numéricos IEEE 754
EXEMPLO
Exemplo de representação do número 0,5 nos formatos de precisão simples e dupla.
Desenvolvimento:
1. Converter o número 0,5 para binário. Usando o processo descrito na Unidade 2, temos que 0,5 = 0,12.
2. Normalizar o número deixando a parte inteira valendo 1, encontrando o significante. Então, 0,5
normalizado na base 2 é igual a 1,0 x 2-1 (significante = 0).
3. Calcular o valor do expoente com excesso e converter para binário 8 ou 11 bits:
A. para precisão simples (8 bits) + 127: -1 + 127 = 126
Expoente = 011111102;
B. para precisão dupla (11 bits) + 1023: -1 + 1023 = 1022
Expoente = 011111111102.
4. Definir o sinal. Como o número 0,5 é positivo, sinal = 0.
Fonte: TANENBAUM, 2006, p.407.
64. unidade 2
059
ARQUITETURA DE
COMPUTADORES
5. Montar o número no padrão IEEE, concatenar as seguintes partes:
sinal + expoente + significante:
A. precisão simples:
0+01111110+00000000000000000000000;
B. precisão dupla:
0+01111111110+00000000000000000000000000000000000000000000000.
6. Como é trabalhoso manipular números em binário, apresentar a solução em hexadecimal. Então:
A. precisão simples:
0011.1111.0000.0000.0000.0000.0000.00002 = 3F00000016;
B. precisão dupla:
0011.1111.1110.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.00002
=
3FE000000000000016.
Deve-se registrar que, adotando o procedimento inverso, é possível converter do formato
IEEE para decimal.
Nesta unidade foram apresentados formatos de representações para números positivos
e negativos, tanto inteiros quanto reais. A escolha do formato usado em um determinado
processadoréprerrogativadosengenheirosprojetistas,quandoestãodefinindoaarquitetura
damáquina.Deve-seobservarqueosformatosapresentadosestãointimamenteassociados
aos tipos de dados das linguagens de programação.
Tomando a linguagem C como exemplo, o tipo de int está associado ao formato de
representação complemento a base. Como o computador trabalha com o sistema
binário, o tipo int representa números no formato C2 em 16 bits. Então, é possível
explicar por que o maior número armazenado em uma variável desse tipo é +32767 e o
menor é -32768. Com base nos conteúdos apresentados, também é possível entender
mensagens de erros do tipo “NaN error”, geralmente apresentadas em aplicações
Window. Quando isso acontece, certamente o resultado de uma operação resultou
em um número não identificado pela linguagem, ocasionando a mensagem e, muito
provavelmente, a parada do sistema.
65. unidade 2
060
ARQUITETURA DE
COMPUTADORES
REPRESENTAÇÃO DE
DADOS NÃO NUMÉRICOS
A representação interna de caracteres é o mapeamento dos caracteres em números inteiros,
ou seja, os bytes representarão caracteres, números, figuras ou qualquer coisa processada
pelo computador. Uma sequência de bytes pode expressar uma sequência de caracteres.
EXEMPLO
No código ASCII, a letra A corresponde ao número 65 em decimal, 41 em hexadecimal 0100.0001
em binário, ou seja, a sua representação é feita por um byte (8 bits).
Quer saber quais são os tipos de representação de dados não numéricos? Acompanhe a seguir.
CÓDIGO DE 7 BITS ASCII (AMERICAN STANDARD
CODE FOR INFORMATION INTERCHANGE)
É um código com sete bits, mas comumente representados por 8 bits. O primeiro bit serve
como paridade, utilizado para detecção de erros. Ele é capaz de representar 128 caracteres
(2
7
) por ser de 7 bits. Das 128 combinações 33 são caracteres de controle. São amplamente
utilizados em dispositivos de controle.
66. unidade 2
061
ARQUITETURA DE
COMPUTADORES
TABELA 9 – TABELA ASCII 7 bits
É o código que estende o ASCII básico, trabalhando com 8 bits.
A TABELA 10 ilustra os caracteres extras do Código ASCII de 8 bits.
TABELA 10 - Extensão do Código ASCII
Fonte: Site AsciiTable.com.
O CÓDIGO ASCII
ESTENDIDO 8 BITS
Fonte: Site AsciiTable.com.
67. unidade 2
062
ARQUITETURA DE
COMPUTADORES
CÓDIGO ISO 8859-1
(LATIN-1)
A ISO Latin-1 é um código de caracteres
ASCII estendido padronizada pela
ISO (Organização Internacional de
Padronização). É similar ao código ANSI
que o Window utiliza. O HTML utiliza
este código.
ANSI (AMERICAN NATIONAL
STANDARDS INSTITUTE)
Os caracteres ANSI são códigos de 8 bits
numerados de 0 a 255. Os caracteres de 0
a 127 são os mesmos do ASCII e de 128 a
255 são similares ao Latin-1.
UNICODE
É um padrão internacional para
resolução do problema das diferentes
línguas (consórcio).
Principais características:
• para cada caractere é atribuído um
único valor de 16 bits;
• para os valores de 0 a 255:
atribuição do código ASCII;
• caracteres acentuados: o software
combina o ponto de código do
acento com o ponto de código da
letra.
DICAS
Aprofunde seus conhecimentos sobre o
Unicode em http://www.unicode.org/.
Este site é do Consórcio Unicode. Nele você
encontrará informações a respeito do padrão
Unicode, parceiros, projetos e comitês,
publicações relacionadas com o Unicode,
últimas versões, entre outras.
PRÁTICA
APLICAÇÃO
É comum que, ao instalarmos um aplicativo
desenvolvido em Java, seja necessário
instalar também (ou apenas atualizar)
uma máquina virtual Java. Trata-se de
um programa que converterá os códigos
do aplicativo, tornando-os executáveis no
computador em que foi instalado. Ou seja,
permitindo que o aplicativo seja utilizado. A
representação de dados internos da máquina
virtual Java ocorre da seguinte maneira: os
números inteiros serão representados em
complemento de dois (8, 16, 32 e 64 bits),
os números reais (ponto flutuante) serão
representados pelo padrão IEEE 754 (32 e 64
bits) e os caracteres alfanuméricos estarão
no formato do Unicode de 16 bits.
68. unidade 2
063
ARQUITETURA DE
COMPUTADORES
Você sabia que a máquina virtual Java suporta números inteiros em complemento de dois (8, 16, 32
e 64 bits), números de ponto flutuante padrão IEEE 754 (32 e 64 bits) e Unicode de 16 bits.
REVISÃO
Nessa unidade, você percorreu os seguintes assuntos ligados ao tema de nossa disciplina:
• Entendeu e conheceu os sistemas numéricos posicionais, que tiveram e têm um
papel importante na evolução do processo de cálculo numérico
QUADRO 4
Sistemas numéricos posicionais: decimal, binário, octal e hexadecimal
Sistema Posicional decimal ou base 10
Sistema binário ou base 2
Sistema octal ou base 8
Sistema Hexadecimal
Base b qualquer para base 10
Base 10 para uma base b qualquer
Entre as bases 2, 8 16
10 símbolos
2 símbolos
8 símbolos
16 símbolos
0,1,2,3,4,5,6,7,8,9
0 e 1
0,1,2,3,4,5,6,7
0,1,2,3,4,5,6,7,8,9, A, B, C, D, E
Fonte: Núcleo de Educação a Distância (NEaD), Ănima, 2014.
• Compreendeu como calcular conversão entre bases em seus diferentes tipos. Essa
informação o ajudará a compreender como o computador manipula seus dados, já
que números binários são mais extensos e difíceis de visualizar. A conversão para
bases com maior número de representações facilita o entendimento.
• Conheceu as formas de representação de dados pelo computador.
QUADRO 5
Conversão entre bases
Fonte: Núcleo de Educação a Distância (NEaD),
Ănima, 2014
69. unidade 2
064
ARQUITETURA DE
COMPUTADORES
QUADRO 6
Representação de dados
Numéricos Não numéricos
Ponto fixo ASCII
Ponto flutuante ISO 8859-1 (Latin-1)
ANSI
Unicode
Fonte: Núcleo de Educação a Distância (NEaD),
Ănima, 2014.
MAIS
PARA SABER
Conheça outro site que faz conversões online
entre bases em AREASEG (Site de Segurança
do Trabalho). Conversor de base numérica.
Disponível em: http://www.areaseg.com/
sinais/numeros.html.
O blog abaixo apresenta exemplos de
conversão de base decimal para binária e vice-
versa. Observe a explicação da representação
de números decimais entre 0 e 1 para números
binários.
BLOG FATOS MATEMÁTICOS. Disponível
em: http://fatosmatematicos.blogspot.
com.br/2011/02/conversao-de-numeros-
decimais-para-base.html.