Vous êtes sur la page 1sur 11

Fundamentos da Computação LFG-TI Prof.

Bruno Guilhen
Apostila de Informática Um sistema analógico contém dispositivos que manipulam
quantidades físicas que são repressentadas na forma
I. Fundamentos de computação analógica. Em sistemas analógicos, as quantidaddes físicas
podem variar ao longo de uma faixa continua de valores.
1.1. Introdução Por exemplo, as quantidades físicas podem variar ao longo
A Informática atua em todas as áreas do conhecimento de uma faixa continua de valores. Por exemplo, a
humano. A sua utilização passou a ser um diferencial para amplitude do sinal de saída de um alto-falante em um
pessoas e empresas, visto que, o controle da informação receptor de rádio pode apresentar qualquer valor entre
passou a ser algo essencial para se obter maior zero e o seu valor máximo (limite). Outros sistemas
flexibilidade no mercado. Assim, o profissional, que analógicos comuns são amplificadores de áudio,
melhor integrar sua área de atuação com a informática, equipamentos de gravação/reprodução de fita magnética e
atingirá, com mais rapidez, os seus objetivos e, um simples reguladore de luminosidade (dimmer).
conseqüentemente, o seu sucesso.
Então o que vem a ser um computador? É um sistema O que é um computador digital?
constituído por HARDWARE , SOFTWARE e
PEOPLEWARE. Um computador digital é uma combinação de dispositivos
e circuitos digitais que podem realizar uma seqüência
HADWARE – Parte física programada de operações com mínima intervenção
humana. A seqüência de operações é chmada de
COMPUTADOR SOFTWARE – Parte lógica programa. O programa é um conjunto de instruções
codificadas que é armazenado na memória interna do
PEOPLEWARE - Usuário computador juntamente com todos os dados de que o
programa necessita. Quando o computador é comandado a
executar o programa, ele executa as instruções na ordem
1.2. A evolução dos Computadores
em que foram armazenadas na memória até que o
Eletrônicos.
programa termine. Ele faz isso em uma velocidade
Os computadores eletrônicos evoluíram baseados
em quatro gerações assim descritas: extremamente alta.
1ª Geração(1951 – 1958) – Tinham como característica
principal o uso de válvulas, alto consumo de energia e Como os computadores “pensam”?
tamanho aproximado de 140m2 , geravam uma grande
quantidade de calor. Computadores não pensam! O programador do
2ª Geração(1959 – 1965) – Tinham como característica computador fornece um programa de instruções e de
principal o uso de transistores, elemento que revolucionou dados que especificam cada detalhe sobre o que fazer e
quando fazer. O computdor é simplesmente uma máquina
o mundo da eletrônica, dando aos computadores mais
rapidez e um tamanho bem menor que a geração anterior. de alta velocidade que pode manipular dados, resolver
3ª Geração(1965 – 1969) – Tinham como característica problemas e tomar decisões, tudo isso sob o controle de
um programa. Se o programador cometer um erro no
principal o tamanho reduzido para médio e pequeno porte,
ainda com o lançamento do IBM/360 esses computadores programa ou entrar com os dados errados, o computador
passaram a possuir a tecnologia dos circuitos integrados produzirá resultados incorretos. Um ditado popular na
computação diz “lixo na entrada – lixo na saída”.
no seu modo primário.
4ª Geração(1970 até os dias atuais) – Característica
principal: domínio da tecnologia dos Circuitos Integrados A organização básica de um computador.
A organização básica de um computador consiste em
(semicondutores a silício) CHIP VLSI. Os processadores
atuais utilizam de 22 a 30 milhões de transistores máquinas que podem ser divididas em até seis níveis. O
integrados na pastilha de silício. esquema abaixo mostra cada um dos níveis e o estado de
cada nível em relação a atuação de cada nível.
Começando pelo nível 0, na parte mais baixa do esquema
II. Organização e Arquitetura de temos ai o hardware da máquina. Abaixo desse nível ainda
Computadores poderíamos falar do circuito eletrônico propriamente dito,
mas isso não pertence ao escopo dos concursos para
Sistemas Analógicos e Digitais. analistas de sistemas e sim para engenheiros eletricistas
Um sistema digital é uma combinação de dispositivos que precisam saber o a constituição física do transistor
projetados para manipular informação lógica ou entre outras coisas. Dos padrões que frequentemente
quantridades físicas que são representadas no formato aparecem em concursos para analistas de sistemas o nível
digital; ou seja, assim as quantidades podem assumir mais baixo que estudaremos será o da lógica digital, nível
apenas valores dicretos. Esses dispositivos são na maioria 0, onde são encontradas as portas (AND, OR, NOT, XOR)
das vezes eletrônicos, mas podem, tambe, ser mecânicos, aquelas que possuem entradas binárias, e são compostas
magnéticos ou pneumáticos. Alguns dos sistemas digitais de transistores formando as portas. As portas podem
mais conhecidos são s computdores digitais e as formar, por exemplo, as memórias de 1 bit e que
calculadoras, os equipamentos digitais de áudio e vídeo e conjulgadas formam os registradores.
o sistema de telefonia (o maior sistema digital do mundo). Cada um dos seis níveis podem assim serem descritos:

www.concursosdeti.com.br 1 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen
Nível 0 – NÍVEL LÓGICO DIGITAL do firmware, bem como, flexibilizar e possibitar
 É considerado o hardware do computador sendo o desenvolvimento de instruções mais potentes
formado pelos circuitos eletrônicos (transistores), em nível de máquina convencional.
UCP, memória, disposistovos de E/S, A seguir é possível acompanhar o esquema de um
dispositivos de comunicação e interfaces. compudor dividido em seis níveis.
 Serve para executar as microinstruções do nível
1. Nível de linguagem orientado a problemas
Nível 5
Nível 1 – NÍVEL DE MICROARQUITETURA Tradução (compilador)
 Nesse nível os registradores formam a memória Nível de linguagem de montagem (Assembly)
Nível 4
local e um circuito denominado ALU (Unidade
Lógica e Aritmética) que é capaz de operações Tradução (assembler)
aritméticas simples. Nível do Sistema Operacional da máquina
Nível 3
 É o verdadeiro nível de linguagem de máquina. O
microprograma, residente em memória Interpretação parcial (S.O.)
permanente (ROM), compõe o que é conhecido Nível de Arquitetura de conjunto de
Nível 2
por firmware em tem por função interpretar e Instruções
traduzir as instruções que lhe são submetidas Interpretação (microprograma)
pelos níveis superiores. Nível de Microarquitetura
 Nem todas as máquinas possuem este nível como Nível 1
é o caso das máquinas RISC. Hardware
 Algumas vantagens do nível de Nível 0 Nível lógico digital
microprogramação sãode falicitar o projeto e a
construção dos circuitos digitais, através da
implementação de parte da lógica digital dentro

MEMÓRIA
CENTRAL
( RAM / ROM)

PERIFÉRICOS U.C.P. PERIFÉRICOS


DE ENTRADA DE
(U.L.A. / U.C./REG) SAIDA

M E M Ó R IA
SE C U N D Á R IA
Figura 1 – Organização básica de um computador
Todos os computadores contêm cinco elementos ou unidades temporário para os dados dentro do CPU sem necessidade
essenciais: a unidade lógica e aritmética (ULA ou ALU), a de acessar a memória externa.
unidade de memória, a unidade de controle, a unidade de
entrada e a unidade de saída. A interconexão básica dessas III. Sistema de Numeração e Codificação
unidades é mostrada na figura 1. As setas indicam a direção Infelizmente, o sistema de numeração decimal não é
na qual os dados, as informações ou os sinais de controle conveniente para ser implementado em sistemas digitais.
estão fluindo. Por exemplo, é muito difícil projetar um equipamento
Na figura 1, a ULA e a unidade de controle são mostradas eletrônico para que ele opere com dez níveis de tensão
combinadas em uma unidade denominada Unidade Central diferentes (cada um representando um caractere decimal, 0
de Processamento (UCP ou CPU). Isso é feito para separar a 9). Por outro lado, é muito fácil projetar um circuito
o “cérebro” real do processador das outras unidades. Em um eletrônico simples e preciso que opere com apenas dois
microprocessador, a CPU usualmente é implementada em níveis de tensão. Por esse motivo, quase todos os sistemas
um único chip, o microprocessador. A CPU também tem um digitais usam o sistema de numeração binário (base 2)
conjunto de registradores que realiza funções especiais. como sistema básico de numeração para suas operações,
Esses registradores também possibilitam o armazenamento

www.concursosdeti.com.br 2 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen
embora outros sistemas de numeração sejam, muitas vezes, índice indicando a base em que está representado. Tem-se
usados juntamente com o sistema binário. portanto, a seguinte equivalência:
No sistema binário há apenas dois símbolos ou valores 101002 = 248 = 2010 = 1416
possíveis para os dígitos: 0 e 1, esse ssutena de base e
também pode ser usado para representar qualquer quantidade Teorema da Representação por Base
que possa ser representada em decimal ou em qualquer outro Seja k qualquer inteiro maior que 1 (lembre que a palavra
sistema de numeração. Entretanto, é comum que o sistema inteiro é usada apenas para números representados na base
binário use um numero maior de dígitos para expressar um decimal). Então, para cada inteiro positivo n, existe uma
determinado valor. representação (a prova deste teorema você encontra em
No sistema binário, o termo digito binário (binary digit) é qualquer bom livro de teoria numérica, como por exemplo,
quase sermpre abreviado com o uso do termo bit, o qual será o de George E. Andrews).
usado a partir de então. n = a0ks + a1ks-1 + ... + as
onde a0>0 e cada ai é um inteiro não negativo maior que k.
O Byte Esta representação de n é unica e é chamada de
A maioria dos microcomputaodres manipula e armazena representação de n na base k. Exemplos:
informações e dados binários em grupos de 8 bits, de modo
que uma seqüência de 8 bits recebe um nome especial: ela é 1210 = 1.101 + 2.100 = 1210
denominada byte. Um byte é constituído sempre de 8 bits e 1710 = 1.161 + 1.160 = 1116
pode representar quaisquer tipos de dados ou informações. 1210 = 1.23 + 1.22 + 0.21 + 0.20 = 11002
Como o computador utiliza dezenas, centenas e até bilhões 1210 = 1.81 + 4.80
de bytes, utiliza-se certas unidades de medida em bytes,
como: Nos próximos capítulos esse assunto de mudança de base
será melhor abordado.
1 Kilobyte = 1 KB 210 = 1.024 bytes (aprox.
mil bytes) Conversão entre Diferentes Bases
1 Megabyte = 1MB 220 = 1024 KB (aprox. 1 As bases octal e hexadecimal também são muito úteis em
milhão de bytes) computação. A base octal é representada com 8 dígitos que
1 Gigabyte = 1GB 230 B= 1.024 MB (aprox. 1 variam entre 0 e 7. A base hexadecimal é composta por
bilhão de bytes) dígitos e letras da seguinte forma: 0 a 9 e as letras a, b, c, d,
1 Terabyte = 1TB 240 B= 1.024 GB (aprox. 1 e e f. A seguir será trabalhado os principais métodos de
trilhão de bytes) conversão em base. Lembre-se de que precisamos de 3 ou 4
1 Petabyte = 1PB 250 B = 1024 TB dígitos binários para a mudança de base octal e
1 Exabyte = 1EB 260B = 1024 PB hexadecimal, respectivamente.

Base de um Sistema de Numeração Sistema de numeração binário


Como se sabe, em Eletrônica e Computação, as bases mais O sistema de numeração binário é o mais importante
utilizadas para sistemas de numeração são: sistema de numeração em sistemas digitais, é um sistema
posicional em que cada digito (bit) possui um certo peso de
 Binária (Base 2) acordo com a posição relativa do bit menos significativo
 Octal (Base 8) (LSB).
 Decimal (Base 10)
Binário para Decimal
 Hexadecimal (Base 16)
Uma relação entre elas pode ser visualizada na tabela a 1001101(2) = 1x26+0x25+0x24+1x23+1x22+0x21+1x20
seguir = 64 + 0 + 0 + 8 + 4 + 0 + 1
Binária Octal Decimal Hexadecimal 1100101(2) = 77(10)
00000 00 00 00
00001 01 01 01 Decimal para Binário
00010 02 02 02 Há duas maneiras de converter um número decimal inteiro
00011 03 03 03 para seu equivalente no sistema binário. O primeiro método
00100 04 04 04 é quando o número decimal é simplesmente expresso como
00101 05 05 05 uma soma de potências de 2, e os bits 1s e 0s são colocados
00110 06 06 06 nos locais apropriados. Exemplo:
00111 07 07 07
01000 10 08 08 45(10) = 32 + 8 + 4 + 1 = 25 + 0 + 23 + 22 + 0 + 20
01001 11 09 09 = 1 0 1 1 0 1(2)
01010 12 10 0A 45(10) = 101101(2)
01011 13 11 0B
Observe que um bit 0 é colocado nas posições 21 e 24, visto
01100 14 12 0C
que, todas as posições têm de ser consideradas.
01101 15 13 0D
01110 16 14 0E Um outro exemplo de conversão de decimal para binário é
01111 17 15 0F o método de divisões sucessivas por 2. Nesse método
De acordo com a tabela acima, o número decimal 20 é executa-se a divisão sucessiva pelo decimal 2 até achar um
representado por 2010, isto é, escreve-se o número e um quociente 0, achando zero no quociente pega-se os restos

www.concursosdeti.com.br 3 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen
dessa divisão (que sempre é 0 ou 1) pegando da direita para O sistema de numeração hexadecimal usa a base 16. Assim,
a esquerda (será escrito de modo inverso) onde o primeiro ele tem 16 símbolos. Vale lembrar que cada dígito
binário ( o mais significativo, aquele que fica mais a hexadecimal é representado por um grupo de 4 digitos
esquerda) será o último resto. binários. E os dígitos hexadecimais de A até F são
Por exemplo, o número 25 na base decimal quando equivalentes aos valores decimais de 10 até 15.
convertido em binário por esse método fica:
Conversão de hexadecimal para decimal
25 Um número hexadecimal pode ser convertido para seu
 12 + o resto 1 equivalente decimal devido ao fato de que a posição de
2 cada digito hexa tem um peso que é uma potência de 16. De
12 acordo com os mesmos métodos utilizados anteriormente.
 6 + o resto 0 Veja um exemplo de conversão do número 356 da base
2
hexadecimal para a base decimal.
6
 3 + o resto 0
2 356(16) = 3 x 162 + 5 x 161 + 6 x 160
3 356(16) = 854(10)
 1 + o resto 1
2 2AF(16)= 2 x 162 + 10 x 161 + 15 x 160
1 2AF(16) = 687(10)
 0 + o resto 1
2
Conversão de decimal para hexadecimal
Nesse caso o método de divisões sucessivas será usado
25(10) = 1 1 0 0 1(2)
novamente, só que neste caso essa divisão será por 16. Veja
a conversão do decimal 42310 para Hexadecimal.
Usando N bits, pode-se representar números decimais na
faixa de 0 a 2N – 1, em um total de 2N números diferentes. 423
 26 + o resto 7
16
Sistema de numeração Octal. 26
O sistema de numeração octal é muitas vezes utilizado no  1 + o resto 10
trabalho com computadores digitais. O sistema octal tem 16
base oito, o que significa que ele tem oito dígitos possíveis: 1
0, 1, 2, 3, 4, 5, 6, 7, 8. Assim cada dígito de um número octal  0 + o resto 1
pode ter qualquer valor de 0 a 7.
16
423(10) = 1 A 7(16)
Conversão de octal para decimal

372(8) = 3x(82) + 7x(81) + 2x(80) Códigos Alfanuméricos


= 250(10)
Código ASCII
1 0
24,6(8) = 2x(8 ) + 4x(8 ) + 6x(8 ) -1 Antes de maio de 1961 a maioria dos sistemas de
= 20,75(10) computadores tinha uma maneira particular de representar
os caracteres alfanuméricos.
Conversão de decimal para octal. Assim, foi proposto o uso de um código comum, a fim de
Um número decimal pode ser convertido para octal usando o possibilitar a comunicação entre os computadores,
mesmo método de divisões sucessivas que foi usadona objetivando permitir a troca de dados entre máquinas de
conversão de decimal para binário, porém com um fator de diferentes tipos e fabricantes.
divisão 8 em vez de 2. O "American National Standards Institute" aceitou a
Veja um exemplo de conversão do número 26610 para a base proposta de Robert W. Bemer e sua equipe para
octal. desenvolver o "American Standard Code for Information
Interchange" (Código Padrão Norte-americano para
Intercâmbio de Informações), hoje conhecido como código
ASCII.
Assim, ASCII é um código numérico usado para
266
 33 + o resto 2 representar os caracteres, entendido por quase todos os
8 computadores, impressoras e programas de edição de texto,
33 que usa a escala do decimal 0 a 127. No modo extendido o
 4 + o resto 1 ASCII forma 256 caracteres.
8 É baseado no alfabeto romano, como é usado no idioma
4 inglês moderno, e visa padronizar a forma pela qual os
 0 + o resto 4 computadores representam letras, números, acentos e sinais
8
diversos ( por exemplo: <, {, ] ) e alguns códigos de
controle ( <Crtl> ) que são utilizados para converter todos
266(10) = 4 1 2(8)
os símbolos em números binários, os quais efetivamente
podem ser processados.
Sistema de numeração Hexadecimal O código permite não só uma melhor compreensão sobre a
lógica do funcionamento do computador, mas, também,

www.concursosdeti.com.br 4 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen
possibilita a utilização de caracteres, cujos símbolos não cilindro, portanto muitos deles são dirigidos a estes
aparecem no teclado. equipamentos. Por exemplo:
É importante notar que há apenas 95 caracteres que podem - o caráter 10 representa a função "LINE FEED", que faz
ser impressos. E eles são numerados de 32 a 126, pois os com que uma impressora avance seu papel,
primeiros códigos (de 0 a 31) foram reservados para - o caráter 24 representa a função "cancel",
caracteres de controle, ou seja, que controlam funções ou - o caráter 27 representa a função "escape" determinada
equipamentos. Esses caracteres de controle tiveram sua pela tecla <ESC>, encontrada no canto superior esquerdo
origem nos primórdios da computação, quando eram nos teclados.
utilizadas máquinas Teletype (como máquinas de escrever
eletro-mecânicas), fitas de papel perfurado e impressoras de
Caracter Decimal Hexadecimal Binário Comentário
NUL 0 0 0000 0000 Caracter Nulo
SOH 1 1 0000 0001 Começo de cabeçalho de Tx
STX 2 2 0000 0010 Começo de texto
ETX 3 3 0000 0011 Fim de texto
EOT 4 4 0000 0100 Fim de transmissão
ENQ 5 5 0000 0101 Interroga
ACK 6 6 0000 0110 Confirmação
BEL 7 7 0000 0111 Sinal sonoro
BS 8 8 0000 0100 Volta um caracter
HT 9 9 0000 1001 Tabulação Horizontal
LF 10 0A 0000 1010 Próxima linha
VT 11 0B 0000 1011 Tabulação Vertical
FF 12 0C 0000 1100 Próxima Página
CR 13 0D 0000 1101 Início da Linha
SO 14 0E 0000 1110 Shift-out
SI 15 0F 0000 1111 Shift-in
DLE 16 10 0001 0000 Data link escape
D1 17 11 0001 0001 Controle de dispositivo
D2 18 12 0001 0010 Controle de dispositivo
D3 19 13 0001 0011 Controle de dispositivo
D4 20 14 0001 0100 Controle de dispositivo
NAK 21 15 0001 0101 Negativa de Confirmação
SYN 22 16 0001 0110 Synchronous idle
ETB 23 17 0001 0111 Fim de transmissão de bloco
CAN 24 18 0001 1000 Cancela
EM 25 19 0001 1001 Fim de meio de transmissão
SUB 26 1A 0001 1010 Substitui
ESC 27 1B 0001 1011 Escape
FS 28 1C 0001 1100 Separador de Arquivo
GS 29 1D 0001 1101 Separador de Grupo
RS 30 1E 0001 1110 Separador de registro
US 31 1F 0001 1111 Separador de Unidade
Espaço 32 20 0010 0000
! 33 21 0010 0001
" 34 22 0010 0010
# 35 23 0010 0011
$ 36 24 0010 0100
% 37 25 0010 0101
& 38 26 0010 0110
' 39 27 0010 0111
( 40 28 0010 1000
) 41 29 0010 1001
* 42 2A 0010 1010
+ 43 2B 0010 1011
, 44 2C 0010 1100
- 45 2D 0010 1101
. 46 2E 0010 1110
/ 47 2F 0010 FFFF
0 48 30 0011 0000
1 49 31 0011 0001
2 50 32 0011 0010
3 51 33 0011 0011
4 52 34 0011 0100
5 53 35 0011 0101
6 54 36 0011 0110
7 55 37 0011 0111
8 56 38 0011 1000
9 57 39 0011 1001
: 58 3A 0011 1010
; 59 3B 0011 1011
< 60 3C 0011 1100
= 61 3D 0011 1101
> 62 3E 0011 1110
? 63 3F 0011 1111

www.concursosdeti.com.br 5 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen
@ 64 40 0100 0000
A 65 41 0100 0001
B 66 42 0100 0010
C 67 43 0100 0011
D 68 44 0100 0100
E 69 45 0100 0101
F 70 46 0100 0110
G 71 47 0100 0111
H 72 48 0100 1000
I 73 49 0100 1001
J 74 4A 0100 1010
K 75 4B 0100 1011
L 76 4C 0100 1100
M 77 4D 0100 1101
N 78 4E 0100 1110
O 79 4F 0100 1111
P 80 50 0101 0000
Q 81 51 0101 0001
R 82 52 0101 0010
S 83 53 0101 0011
T 84 54 0101 0100
U 85 55 0101 0101
V 86 56 0101 0110
W 87 57 0101 0111
X 88 58 0101 1000
Y 89 59 0101 1001
Z 90 5A 0101 1010
[ 91 5B 0101 1011
\ 92 5C 0101 1100
] 93 5D 0101 1101
^ 94 5E 0101 1110
_ 95 5F 0101 1111
` 96 60 0110 0000
a 97 61 0110 0001
b 98 62 0110 0010
c 99 63 0110 0011
d 100 64 0110 0100
e 101 65 0110 0101
f 102 66 0110 0110
g 103 67 0110 0111
h 104 68 0110 1000
i 105 69 0110 1001
j 106 6A 0110 1010
k 107 6B 0110 1011
l 108 6C 0110 1100
m 109 6D 0110 1101
n 110 6E 0110 1110
o 111 6F 0110 1111
p 112 70 0111 0000
q 113 71 0111 0001
r 114 72 0111 0010
s 115 73 0111 0011
t 116 74 0111 0100
u 117 75 0111 0101
v 118 76 0111 0110
w 119 77 0111 0111
x 120 78 0111 1000
y 121 79 0111 1001
z 122 7A 0111 1010
{ 123 7B 0111 1011
| 124 7C 0111 1100
} 125 7D 0111 1101
~ 126 7E 0111 1110
DELETE 127 7F 0111 1111

Tabela ASCII – Extendida.


Representa caracteres extras, caracteres de línguas mortas e
caracteres especiais para desenhos. caracteres especiais
para desenhas figures

www.concursosdeti.com.br 6 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen
= Universal Character Set = Conjunto Universal de
Caracteres".
O Unicode fornece um número único para cada caractere,
não importando a plataforma (a máquina e/ou sistema
operacional em uso), o programa ou o idioma. Foi
desenvolvido para resolver problemas que existiam com
outros sistemas de codificação, pois não eram suficientes
para suportar todos os caracteres e idiomas.
Vários sistemas operacionais, programas e browsers
modernos suportam o Unicode. Sua criação foi baseada na
tabela ASCII. Existem diversas normas e/ou padrões da
ISO, dentre eles o ISO 8859-“X” que define o conjunto
completo de alfabetos de todos os idiomas. O ISO 8859-1,
por exemplo é o padrão Latin-1 (Alfabeto Latino 1) que nós
usamos. Este padrão está sendo largamente implementado e
já pode ser visto como um substituto para o padrão ASCII
(que é definido pelo ISO 646).
Usuários do browser Mozilla Firefox 1.0 (para Windows)
podem clicar em “View" ou "Exibir” em seguida em
“Character Encoding" ou "Codificação” para verificar a
opção “Western (ISO 8859-1)" marcada. Para ver outras
opções de codificação, basta clicar em “More Encodings"
ou "Mais”. No Internet Explorer 6, esta opção é parecida,
Como conseguir um caracter que não está no teclado onde podemos ver "Europeu Ocidental (Windows)
Pressionando a tecla <ALT> e o número do caracter (D) marcada.
aparecerá o dígito correspondente em um processador de Dica: Quando acontecer de você acessar um site (usando o
texto. Firefox) e os caracteres da página não ficarem
Faça uma experiência: abra o Word ou o Notepad, pressione completamente legíveis, ou seja, faltando acentuação,
<Alt> e o número 65 (no teclado numérico ativado). Levante caracteres truncados ou estranhos, certifique-se de que o
os 2 dedos juntos. Deve surgir a letra A maiúscula na tela do código de caracteres esteja marcado como “Western (ISO
programa. 8859-1)” . Isto vale também para os browsers do Linux
Mozilla, Galeon, Konkeror, etc. No caso do Internet
Outras codificações Explorer, o mesmo emitirá um aviso de instalação sob
Há vários conjuntos de caracteres hoje em dia. Por exemplo, demanda para o idioma usado no referido site.
há um conjunto de caracteres denominado ISO, similar ao No exemplo da figura 40, podemos ver o Mapa de
ASCII, que contém caracteres adicionais para as linguagens Caracteres do Windows XP. Para ter acesso a esse mapa,
européias. basta clicar em "Iniciar\Programas\Acessórios\Ferramentas
Também há conjunto de caracteres que se constitui em um do Sistema\Mapa de Caracteres".
padrão mais universal chamado ISO Latin 1, que é usado em Caso não encontre nesse caminho, é possível que não esteja
muitos sistemas operacionais e em programas para instalado. Neste caso, será necessário ir ao Painel de
navegação na Internet. Controle, clicar em Adicionar ou Remover Programas,
Duas das mais importantes codificações atualmente inserir o CD do Windows e adicionar o Mapa de
utilizadas são: Caracteres.
ISO: "International Standardization Organization". É o
padrão ocidental, utilizado também no Brasil.
Cada caractere só possui 1 byte ( 8 bits ), gerando um
máximo de 256 caracteres.
UTF-8: "Unicode Transformation Format-8". É o padrão
mundial, que pode ser usado em quase todos os idiomas.
Cada caracter possui 2 bytes ( 16 bits ), o que permite um
valor máximo bem maior que o anterior: 65.536 caracteres.

Nota: Arte ASCII é aquela onde os únicos elementos


utilizados são os caracteres disponíveis no teclado do
computador.

O UNICODE

Unicode é o padrão universal de codificação de caracteres.


Essa codificação existe em três formas: em 8 bits (UTF-8,
baseado no ASCII), 16 bits (UTF-16) e 32 bits (UTF-32).
Foi criado pelo Consórcio Unicode e é baseado no padrão
ISO 10646 (ISO = International Organization for
Standardization = Organização Internacional de
Padronização). O Unicode também é conhecido como "UCS

www.concursosdeti.com.br 7 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen
bit de mais alta ordem, como por exemplo o bit 31 numa
palavra de 32 bits.
Como o tamanho de uma palavra manipulada por um
computador tem tamanho limitado, os números que podem
ser representados também têm tamanho limitado. Se o
tamanho de uma palavra é igual a n bits, o maior número
possível de ser representado é igual a 2n. Se ao realizarmos
operações sobre os números, elas gerarem resultados que
não podem ser representados na quantidade de bits
reservados ocorre o que denominados de overflow
(números muito grandes) ou underflow (números muito
pequenos). Tanto o overflow quanto o underflow geram
exceções e são tratados pelo sistema operacional.
Os computadores manipulam tanto números positivos
quanto números negativos, que são representados em
complemento a 2. Nesta convenção os números que
possuem 0s à esquerda são considerados positivos e os
números com 1s à esquerda são considerados negativos. O
complemento a 2 é obtido invertendo-se o número binário e
depois somando 1 a este valor. Porém, uma regra simples
para transformar um número binário em sua representação
em complemento a 2 é a seguinte:
1) copie da direita para a esquerda todos os bits até
Figura 40 – Mapa de Caracteres do Windows XP encontrar o primeiro bit 1 inclusive e
2) inverta todos os demais bits logo abaixo esta ilustrado
Ainda no exemplo da figura 40, é preciso ressaltar que: um exemplo da obtenção de representação em
1. Os caracteres mudam de acordo com o tipo de fonte complemento a 2 de um número binário com 4 dígitos.
escolhida. Portanto, vai depender do número de fontes que
estiver instalado em seu computador; 0110 = 6 na base 10
2. Para que você tenha a mesma visão da tabela acima, é 1001 (número binário invertido)
necessário marcar a caixa "Modo de exibição avançado"; + 0001 (soma com 1)
1010 (complemento a 2)

IV. Aritmética Computacional usando a regra:


0110 ->1010
As palavras de um computador são compostas por bits e
podem representar números armazenados na memória. Estes A respresentação em complento a 2 tem a vantagem de
números podem ter diferentes significados, como inteiros ou representar números negativos sempre com o bit 1 em sua
reais, serem positivos ou negativos. A manipulação dos posição mais significativa. Assim, o hardware só precisa
números inclui operações de soma, subtração, multiplicação testar
e divisão. este bit para verificar se o número é positivo ou negativo.
O objetivo deste capítulo é mostrar como o hardware Este bit é conhecido como bit de sinal. A seguir está
implementa a representação dos números, os algoritmos representada uma seqüência de números binários (8 dígitos)
adequados para operações aritméticas e sua implicação no representados em complemento 2.
conjunto de instruções da máquina.
0000 0000 = 0
Números com Sinal e Números sem Sinal 0000 0001 = 1
Os números podem ser representados em qualquer base. 0000 0010 = 2
Porém, a base 2 é a mais adequada para os computadores 0000 0011 = 3
porque tratam com somente dois valores 0 e 1. Estes valores .............
são implementados facilmente através de circuitos elétricos. 0111 1101 = 125
Da aritmética temos que, em qualquer base, o valor do i- 0111 1110 = 126
ésimo dígito d de um número é dado por: d x basei, onde i 0111 1111 = 127
começa em 0 e cresce da direita para a esquerda, de acordo No conjunto acima nota-se que o número mais a esquerda é
com a posição ocupada pelo dígito. Por exemplo, o número zero, logo o número é positivo.
1011 na base dois é igual a: .............
(1x23) + (0x22) + (1x21) + (1x20) = (1x8) + (0x4) + (1x2) + 1000 0001 = -127 (o número mais a direita indica o sinal)
(1x0) = 8 + 0 + 2 + 1 = 11. 1000 0010 = -126
1000 0011 = -125
.............
Portanto, os bits são numerados como 0,1,2,3,... da direita 1111 1101 = -3
para a esquerda em uma palavra. 1111 1110 = -2
Utilizamos a expressão bit menos significativo para designar 1111 1111 = -1
o bit 0, e a expressão bit mais significativo para designar o No conjunto acima nota-se que o número mais a esquerda é
um, logo o número é negativo.

www.concursosdeti.com.br 8 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen

Adição e Subtração
Numa soma os bits são somados um a um da direita para a
esquerda, com os carries sendo passados para o próximo bit
à esquerda. A operação de subtração usa a adição. O
subtraendo é simplesmente negado antes de ser somado ao
minuendo. Lembre-se que a máquina trata com números
representados em complemento a 2. A seguir mostr-se as
operações de soma (6+7) e subtração (7-6) bit a bit entre
dois números representados com 4 dígitos binários.
710 = 0 1 1 12
610 = 0 1 1 02
1310 = 1 1 0 12
110 = 0 0 0 12

Construção de uma Unidade Lógica Aritmética


A unidade lógica aritmética (ALU – Arithmetic Logic Unit)
é o dispositivo que realiza as operações lógicas e
aritméticas, definidas pelo conjunto de instruções, dentro do
processador.
A ALU é construída basicamente por quatro blocos básicos
de hardware: portas AND, portas OR, NOT (inversores) e
multiplexadores.
As implementações de operações lógicas são as mais
Como citado anteriormente, tanto a soma como a subtração simples de serem realizadas, pois elas são mapeadas
podem gerar overflow ou underflow, se o resultado obtido diretamente com componentes do hardware.
não puder ser representado pela quantidade de bits que A próxima função a ser incluída é a adição. Supondo que
formam uma palavra. Se somarmos ou subtrairmos dois temos apenas um bit para ser somado, necessitamos de um
números com sinais contrários, nunca ocorrerá overflow ou circuito com duas entradas para os operandos, uma saída
underflow. Isto porque operandos com sinais contrários para a soma resultante, uma entrada relativa ao carry in e
nunca podem ser maior do que qualquer dos operandos. uma saída para o carry out. A Figura 41 mostra este
O overflow ocorre quando somamos dois operandos somador.
positivos e obtemos um resultado negativo, ou vice-versa.
Isto significa que utilizamos o bit de sinal, gerando um
carry, para armazenar um valor pertencente ao resultado da
operação. Raciocínio semelhante é realizado para detectar a
ocorrência do underflow numa subtração. Neste caso, o bit
de sinal também é usado para armazenar um valor
pertencente ao resultado da operação.
Os projetistas de um sistema devem decidir onde tratar a
ocorrência de overflow ou de underflow em operações
aritméticas. Elas podem ser tratadas tanto por hardware
quanto por software. Pode existir a detecção por hardware
que gera uma exceção, e que depois é tratada por software.
Figura 41. Somador de um bit
Operações Lógicas Podemos especificar as saídas soma e carry out através de
Os computadores manipulam palavras, mas é muito útil, equações lógicas, que podem ser implementadas a partir
também, manipular campos de bits dentro de uma palavra ou dos blocos de hardware mencionados anteriormente. A
mesmo bits individuais. O exame de caracteres individuais equação lógica para gerar o bit carry out é dada por:
(8 bits) dentro de uma palavra é um bom exemplo dessa
necessidade. Assim, as arquiteturas de conjuntos de CarryOut = (b. CarryIn) + (a.CarryIn) + (a.b).
intruções incluem instruções para manipulação de bits.
Um dos tipos de instrução utilizados são as de deslocamento E, a equação lógica para gerar o bit soma é dada por:
de bits. As instruções podem deslocar bits tanto à direita
quanto à esquerda. Todos os bits são movidos para o lado Soma = (a . b . carryin ) + ( a . b . carryin ) + ( a .
determinado e os bits que ficam vazios são preenchidos com
0s. Outras instruções lógicas muito úteis são que b .CarryIn) + (a . b . CarryIn).
implementadas na unidade lógica e aritmética de um
processador são as operações NOT, AND, OR e XOR. A Para completar o projeto de uma ALU de n bits podemos
seguir mostra-se as operações lógicas, bit a bit, de conectar n somadores de um bit. Os carry outs gerados
deslocamento à direita, à esquerda, NOT, AND, OR e XOR. pelos bits menos significativos da operação podem ser
propagados por toda a extensão do somador, gerando um
carry out no bit mais significativo do resultado da
operação. Este somador é denominado somador de carry
propagado.

www.concursosdeti.com.br 9 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen
A operação de subtração pode ser realizada somando-se o Um método elegante de multiplicar números com sinal
minuendo com a negação do subtraendo. Este efeito é recebeu o nome de algoritmo de Booth. Ele foi elaborado a
realizado acrescentando uma entrada complementada de b ao partir da constatação de que com a capacidade de somar e
somador e ativando o carry in do bit menos significativo de subtrair números existem várias maneiras de se calcular
para um. O somador então calcula a + b + 1. Ao escolhermos um produto. Por exemplo, podemos substrituir um string de
a versão invertida de b obtemos: 1s no multiplicador por uma subtração quando encontramos
o primeiro 1, e por uma soma ao encontrarmos o último 1
do string.
a+ b + 1 = a + ( b + 1) = a + (-b) = a - b.
Booth buscou atingir maior velocidade de processamento
utilizando operações de deslocamento, que ainda hoje são
A simplicidade do projeto do hardware de um somador para
operações mais rápidas do que operações de soma. Baseado
números de complemento a 2 demonstra porque esta
nesta observação, se desejarmos maior velocidade na
representação tornou-se um padrão para operações
multiplicação de números inteiros por uma potência de 2,
aritméticas inteiras em computadores.
basta que utilizemos operações de deslocamento indicando
O problema com o somador de carry propagado está
a quantidade de deslocamentos igual ao expoente.
relacionado a velocidade de propagação do carry, que é
A grande vantagem do algoritmo de Booth é tratar com
realizada seqüencialmente. Num projeto de hardware a
facilidade os números com sinal. O raciocínio de Booth foi
velocidade é um fator crítico. Para solucionar este problema
classificar os grupos de bits como início, meio e fim de um
existem diversos esquemas para antecipar o carry. Porém,
string de 1s. Naturalmente um string de 0s não precisa ser
nestes esquemas são utilizadas mais portas lógicas o que
considerado.
provoca um aumento no custo.
Um dos esquema para antecipar o carry é denominado carry
Algoritmo da multiplicação
lookahead. Os somadores que utilizam o esquema de carry
Este algoritmo precisa apenas de dois passos principais: o
lookahead baseiam sua implementação em vários níveis de
teste do produto e o seu deslocamento; pois os registradores
abstração. Utilizando a abreviação ci para representar o i-
Produto e Multiplicador podem combinados em um só. O
ésimo bit de carry, podemos escrever a equação do carry
algoritmo começa com o Multiplicador na metade à direta
como:
do registrador Produto, e 0 na metade à esquerda.
1. Testa se Produto é igual a 0 ou 1.
ci = (bi . ci) + (ai . ci) + (ai . bi) = (ai . bi) + (ai + bi) . ci
2. Produto = 0, passa ao item 4.
3. Produto = 1, soma o Multiplicando à metade esquerda
Os termos (ai . bi) e (ai + bi) são tradicionamente chamados
do Produto e coloca o resultado na metade à esquerda do
de gerador (gi) e propagador (pi), respectivamente.
resgistrador Produto.
Usando estas relações para definir ci + 1, obtemos:
4. Desloca o registrador Produto 1 bit à direita.
5. Verifica se foram realizadas todas as repetições
ci + 1 = gi + pi . ci
necessárias de acordo com o tamanho da palavra, se não
volta ao item 1.
Qualquer equação lógica pode ser implementada com uma
6. Fim.
lógica de dois níveis. Mesmo esta formulação mais
simplificada pode gerar equações muito grandes e, portanto
Divisão
levar a circuitos lógicos relativamente grandes e caros,
A divisão é a operação recíproca da multiplicação. Dentre
dependendo do número de bits a serem somados.
as operações aritméticas é a que aparece menos
freqüentemente nos códigos dos programs.
Multiplicação
No algoritmo da divisão são utilizados dois operandos, o
Para realizar a multiplicação são necessários dois operandos,
dividendo e o divisor, e produzidos dois resultados o
um multiplicando e um multiplicador para gerar um
quociente e o resto. A relação entre os componentes da
operando produto. O algoritmo da multiplicação diz que os
divisão pode ser expressa da seguinte forma:
dígitos do multiplicando devem ser multiplicados pelos
dígitos do multiplicador um de cada vez, da direita para a
dividendo = quociente x divisor + resto,
esquerda, deslocando os produtos intermedários um dígitos à
onde o resto é sempre menor que o divisor.
esquerda em relação ao imediatamente anterior.
Às vezes, os programas usam a divisão simplesmente para
Uma observação importante é que o número de bits do
obter o resto, ignorando o quociente. Além disso, é
produto final (n+m) é maior do que o número de bits do
necessário que seja detectada a divisão por zero, que é
multiplicando (n) ou do multiplicador (m). Além disso, a
matematicamente inválida.
multiplicação também precisa tratar a ocorrência de
overflow.
Algoritmo da divisão
Considerando os dígitos binários 0 e 1, temos apenas duas
Da mesma forma que foram combinados registradores na
possibilidades de escolha, a cada passo da multiplicação:
multiplicação, também na divisão são combinados dois
registradores, o Resto e o Quociente. O algoritmo começa
1. coloque uma cópia do multiplicando
com o Resto na metade à esquerda do registrador Resto, e o
(multiplicando x 1) no lugar apropriado, se o dígito do
Quociente na metade à direita.
multiplicador for igual a 1, ou
2. coloque 0 (multiplicando x 0) no lugar
1. Desloca o registrador Resto 1 bit à esquerda.
apropriado, se o dígito do multiplicador for igual a 0.
2. Subtrai o registrador Divisor da metade à esquerda do
Assim, é necessário desenvolver um algoritmo em hardware
registrador Resto e armazena o resultado na metade
que seja eficiente para realizar a multiplicação.
esquerda do registrador Resto.

www.concursosdeti.com.br 10 www.brunoguilhen.com.br
Fundamentos da Computação LFG-TI Prof. Bruno Guilhen
3. Testa se Resto é menor do que 0. 4. Teste se overflow ou underflow.
4. Resto < 0, restaura valor original com Divisor + metade 5. Sim, gera exceção.
esquerda do Resto, armazenando na metade esquerda do 6. Não, arredonde a mantissa para o número de bits
registrador Resto e deslocando 1 bit à esquerda, inserindo 0 apropriado.
no novo bit menos signifiativo, passa ao item 6. 7. Testa se resultado está normalizado.
5. Resto = 0, desloca o registrador Resto 1 bit à esquerda, 8. Sim, Fim.
inserindo 1 no novo bit mais à direita. 9. Não, retorna ao passo 3.
6. Verifica se foram realizadas todas as repetições
necessárias de acordo com o tamanho da palavra, se não Algoritmo da multiplicação em ponto flutuante
volta ao item 1. 1. Soma os expoentes com peso dos dois números,
7. Desloca a metade a esquerda do registrador Resto 1 bit à subtraindo o valor do peso da soma para obter o novo
direita, Fim. expoente.
2. Multiplique as mantissas.
Ponto Flutuante 3. Normalize o produto se necessário, deslocando à direita e
Assim como os números decimais podem ser representados incrementando o expoente.
em notação científica normalizada os números binários 4. Teste se overflow ou underflow.
também podem. A aritmética computacional que manipula 5. Sim, gera exceção.
os números binários em notação científica normalizada é 6. Não, arredonde a mantissa para o número de bits
denominada de aritmética de ponto flutuante. apropriado.
Os projetistas do hardware devem encontrar um 7. Testa se resultado está normalizado.
compromisso entre a mantissa e o expoente dos números em 8. Não, retorna ao passo 3.
ponto flutuante. A relação entre e mantissa e o expoente é 9. Não, faça o sinal do produto positivo se ambos os sinais
expressa do seguinte modo: o aumento do número de bits dos operandos originais são os mesmos, caso contrário o
reservados à mantissa aumenta a precisão do número, sinal é negativo, Fim.
enquanto o aumento do número de bits reservados ao
expoente aumenta o intervalo de variação dos números
representados.
Deve ser observado que as interrupções relativas ao overflow
e ao underflow também ocorrem na representação em ponto
flutuante. Porém, neste caso, overflow e o underflow
ocorrem quando o expoente é muito grande ou muito
pequeno, respectivamente, para ser
armazenado no espaço reservado a ele.
Outra questão que os projetistas devem decidir é se vão ser
utilizados os mesmos registradores tanto para números
inteiros quanto para números de ponto flutuante. A adoção
de registradores diferentes aumenta ligeiramente o número
de instruções necessárias a execução do programa. O
impacto maior está na criação de um conjunto de instruções
de transferência de dados para mover os dados entre os
registradores de ponto flutuante e a memória. Os benefícios
estão no fato de não precisar aumentar o tamanho do campo
nas instruções para diferenciar os operandos e aumentar a
banda passante dos registradores.
A partir de 1980 todos os computadores projetados adotam
uma representação padrão para números em ponto flutuante
denominada IEEE 754. A adoção deste padrão facilita a
portabilidade de programas (precisão simples = 1 bit de
sinal, 8 bits de expoente e 23 bits de mantissa + 1 implícito =
24, precisão dupla = 1 bit de sinal, 11 bits de expoente e 52
bits de mantissa + 1 implícito = 53).
A adição e a multiplicação com números de ponto flutuante,
na sua essência, utilizam as operações inteiras
correspondentes para operar as mantissas, mas é necessária
uma manipulação extra nos expoentes e para a normalização
do resultado.

Algoritmo da adição em ponto flutuante


1. Compare o expoente dos dois números. Desloque o menor
número à direita até que seu expoente se iguale ao maior
número.
2. Some as mantissas.
3. Normalize a soma, deslocando à direita e incrementando o
expoente ou deslocando à esquerda e decrementando o
expoente.

www.concursosdeti.com.br 11 www.brunoguilhen.com.br