Sei sulla pagina 1di 23

FUNDAMENTOS

COMPUTACIONAIS
Aritmética Binária – Aula 4

Professor Regis – 2009


Sistema Binário
 Os computadores utilizam o sistema binário, ou seja,
todas as informações são armazenadas ou processadas
com apenas duas grandezas, representadas pelos
algarismos 0 e 1, que são obtidas através de dois
diferentes níveis de tensão interna no computador, que
podem ser por exemplo 1,2 volt(alto) ou 0,2 volt
(baixo).Observe que esse sinais elétricos,
independentemente da voltagem que cada sistema
utilize, serão sempre um sinal alto e ou baixo, para que,
na transmissão, seja nítida a diferença entre eles.
 O elemento mínimo de informação operado pelos
computadores foi chamado de bit (binary digit ou dígito
binário), pois trata-se de, apenas, dois algarismos (0 e 1).
Sistema Binário
 Esses sinais elétricos altos ou baixos podem formar
sequências que serão representadas pelos dígitos 0 ou
1. Portanto, 0011 é uma sequência que significa
“baixa,baixa,alta,alta”. Nesta notação poderíamos ter
sequencias com mais do que quatro dígistos, ou bits,
como 00011001, que tem oito.
 Para que haja comunicação é preciso representar
simbolicamente o que se pretende comunicar. Desse
modo o problema da comunicação consiste em se
convercionar representabilidade para os simbolos.
 Quando escrevemos “motor” usamos apenas quatro
letras. No entanto, em função de o computador trabalhar
apenas com dois estados, precisamos conseguir
escrever a mesma coisa com apenas os simbolos 0 e 1.
Convencionou-se, então, que cada algarismos ou letra
seria representado por um conjunto de 8 bits.
Sistema Binário
 Organizou-se uma tabela denominada código
ASCII(American Standart Code for Information
Interchange), na qual foi feita uma associação entre cada
caractere que conhecemos, seja um numero, uma letra
ou um símbolo, com seu correspondente conjunto de 8
bits.
 Nesta tabela a letra “M” é representada por 0100 1101, a
letra “O” é representada por 0100 1111, a letra T é
representada por 0101 0100, e a letra “R” é
representada por 0101 0010.
 Dessa forma podemos escrever a palavra MOTOR como
: 0100 1101 0100 1111 0101 0100 0100 1111 0101 0010.
 Assim, a letra “M” ou 0100 1101 se constitui em um byte
e a palavra “motor” tem 5 bytes ou 40 bits.
Sistema Binário – Código ASCII
 Vários foram os códigos utilizados ao longo da história da
informática. Tivemos o código BCD, de 6 bits, o código
EBCDIC , de 8 bits, mas o que acabou se tornando
padrão foi o código ASCII (American Standart Code for
Information Interchange).
 Caractere Byte Caractere Byte
 Em branco 0010 0000 0 0011 0000
 ( 0010 1000 1 0011 0001
 + 0010 1011 2 0011 0010
 $ 0010 0100 3 0011 0011
 ) 0010 1001 4 0011 0100
 - 0010 1101 5 0011 0101
 / 0010 1111 6 0011 0110
 , 0010 1100 7 0011 0111
 . 0010 1110 8 0011 1000
 = 0011 1101 9 0011 1001
Sistema Binário – Código ASCII
 Caractere Byte Caractere Byte
 A 0100 0001 O 0100 1111
 B 0100 0010 P 0101 0000
 C 0100 0011 Q 0101 0001
 D 0100 0100 R 0101 0010
 E 0100 0101 S 0101 0011
 F 0100 0110 T 0101 0100
 G 0100 0111 U 0101 0101
 H 0100 1000 V 0101 0110
 I 0100 1001 W 0101 0111
 J 0100 1010 X 0101 1000
 K 0100 1011 Y 0101 1001
 L 0100 1100 Z 0101 1010
 M 0100 1101
 N 0100 1110
Sistema Binário – Código ASCII
 Exercícios:
 1)Determine quantos bytes serão usados na codificação
em ASCII das seguintes expressões:
 a)BOLA
 b) A CASA
 c) X + Z=
 d) ESTOU ESTUDANDO MUITO
 e)
 2) Represente no código ASCII as seguintes expressões:
 a) BOLA
 b) A CASA
 c) X+2=
 d) A CORUJA
Aritmética Binária
 Adição
 A soma aritmética em binário é simples, pois possui
poucas regras:
0+0=0
0+1=1
1+0=1
1 + 1 = 0, mas “vai 1” para o dígito de ordem superior.
 Exemplo:
1001.1100
+ 0110.1001
1.0000.0101
Observação:
Soma-se as colunas da direita para a esquerda, tal como uma soma
em decimal.
Aritmética Binária
 Adição
 No exempo a seguir, em azul, é indicado o “vai 1”:
1 <----- "vai um“ ( carry in)
1100
+ 1010
1.0110

Outro exemplo:

101
+ 1110
1.0011
Aritmética Binária
 Subtração
 A subtração possui as seguintes regras:
0-0=0
0 - 1 = 1 ("vem um")
1-0=1
1-1=0
Como é impossível tirar 1 de zero deve-se "pedir
emprestado" para a casa de ordem superior, ou seja, se
subtrai 1 de 10 e se encontra 1 como resultado: 10 -1 = 1

 Exemplo:
11101
- 00111
10110
1 <----- "vem um“(carry out)
Aritmética Binária
 Subtração

Exemplos:
111111
- 101010
010101

110100101
- 011101000
010111101
Aritmética Binária
 Multiplicação
 A multiplicação possui as seguintes regras:
0x0=0
0x1=0
1x0=0
1x1=1
Porém, a multiplicação em computadores é feita por um
artifício, pois multiplica-se um número A por outro n,
somando A com A, n vezes. Por exemplo, 2x3 = 2+2+2.
Exemplo:
1011
* 1101
1011
0000
1011
+ 1011
10001111
Aritmética Binária
 Divisão
A divisão pode ser feita por subtrações sucessivas.
Portanto, em computadores, qualquer operação aritmética
pode ser realizada através de somas.
No estudo de circuitos lógicos verifica-se como essas
propriedades são úteis no projeto de computadores.

Exemplo:
1010101 / 101 = 10001
- 101
0000101
- 101
000
Representação de Dados
 Em um computador são armazenados e processados
apenas dados e instruções.
 Um computador executa operações sobre dados
numéricos (números) ou alfabéticos (letras e símbolos).
 Porém, um computador somente opera sobre valores
representados em notação binária.
 Assim, os dados são representados no computador
(memória e processador) através de bits, de modo que
ele possa interpretar corretamente o seu significado e
executar as operações adequadas.
 Portanto, um programa de computador é formado por
uma seqüência de instruções que operam sobre um
conjunto de dados representados em notação binária.
Representação de Dados
 Um programa (seqüência de instruções) deverá
manipular diferentes tipos de dados que podem ser:
* Numéricos:
--> Ponto fixo (números inteiros);
--> Ponto flutuante (números reais ou fracionários);
--> BCD (representação decimal codificada em binário).
* Alfanuméricos:
--> Letras, números e símbolos (ASCII ou EBCDIC).
 O tipo de dado a ser utilizado deve ser informado pelo
programador ao computador através de declarações para
que o programa interprete o dado fornecido
corretamente. Por exemplo, na linguagem C, são
empregadas as seguintes declarações:
int num (inteiro) ou float sal (real) ou char nome (caracter)
Dados Numéricos
 Intuitivamente, a representação de números seria através
da conversão do valor decimal para seu correspondente
binário, mas os números podem ser positivos ou
negativos.
 Portanto, um aspecto fundamental a ser definido seria a
representação do sinal.
 Nesta representação foi definida o emprego de mais um
bit (bit mais representativo) que indica o sinal, com a
seguinte convenção:
bit 0 --> sinal positivo;
bit 1 --> sinal negativo.
Exemplo:
+8(10) = 00001000(2) --> Valor binário com 8 bits (7 + bit de sinal)

-8(10) = 10001000(2) --> Valor binário com 8 bits (7 + bit de sinal)


Dados Numéricos
 Representação de números inteiros (ponto fixo)
Dados numéricos com ponto fixo são números inteiros, ou
seja, sem parte fracionária.
Os dados numéricos inteiros positivos são
representados com o sinal (bit mais significativo 0 = sinal
positivo) e em seguida o valor do dado em binário.
 Para que os computadores operem com números
negativos são necessários algoritmos de maior
complexidade, mas quando se usa a representação em
sinal e magnitude, são adotadas formas que facilitam e
tornam mais eficiente a manipulação destas operações
aritméticas (aritmética de sinal e magnitude).
Dados Numéricos
 Representação em sinal e magnitude
A magnitude (valor absoluto que independe de sinal) de
um número é representada em binário.
O sinal é representado por um bit (o bit mais significativo,
ou seja, mais à esquerda na representação).
Porém, a representação em sinal e magnitude apresenta
uma grande desvantagem: exige um grande número de
testes para realizar uma simples soma de dois números
inteiros, ou seja, o algoritmo torna-se complexo ao ser
realizado no computador, resultando em baixa eficiência
(execução lenta).
Outra desvantagem é ter duas representações para o
número zero.
Números Reais
 Os números reais são aqueles que apresentam uma
parte inteira e outra fracionária, situada após a vírgula.
 Como representar a parte fracionária de modo que o
processamento seja eficiente e o armazenamento exija
pouco consumo de memória?
 Os números reais podem ser representados como segue:
REPRESENTAÇÃO EM PONTO FLUTUANTE
Qualquer número inteiro ou fracionário pode ser expresso
no formato número*base^expoente em que variam a
posição da vírgula (delimita a parte fracionária) e a
potência da base.
Essa representação é chamada de representação em
ponto flutuante, pois o ponto varia sua posição,
modificando, em conseqüência, o valor representado.
Exemplo: 123,456 = 0,123456*10^3 = 123456*10^-3
Números Reais
REPRESENTAÇÃO NORMALIZADA
O número é representado movendo-se a vírgula de forma
que o número seja menor que 1, multiplicado-se por uma
potência da base de modo a manter o valor do número.
Geralmente, isso significa que o primeiro dígito significativo
seguirá imediatamente ao ponto ou vírgula. Por exemplo:
57,68310 normalizado é 0,57683 x 102
0,000462810 normalizado é 0,4628 x 10-3
0,000010112 normalizando é 0,1011 x 2-4
A representação normalizada pode ser generalizada por ±
número * base ± expoente = ±0,M*B^±e.
Onde M é a mantissa (algarismos significativos), B é a
base e e é o expoente.
Números Reais
REPRESENTAÇÃO NO COMPUTADOR
Uma forma comum de representação de números reais no
computador pode ser expressa como segue:
SN.SE.Expoente.Mantissa (M bits)
Onde:
--> SN = sinal do número
--> SE = sinal do expoente
Nota-se que a base é implícita, pois é binária.
Para cada computador, o número total de bits para M, para
SN, para SE, para a mantissa e para o expoente, são
pré-definidos em projeto.
Portanto, quanto maior o número de bits para o expoente,
maior será a faixa de números que o computador pode
representar (alcance) e quanto maior o número de bits
para a mantissa, maior sua precisão.
Números Reais
REPRESENTAÇÃO NO COMPUTADOR
Reduzindo-se a mantissa, perde-se precisão e há
necessidade de truncar o número (cortar algarismos).
Outro problema ocorre na região numérica próxima de
zero, que tem o maior expoente negativo possível.
Ocorre underflow quando o valor absoluto a ser
representado é tão pequeno que fica menor que o menor
valor absoluto representável. Nesse caso, o expoente é
negativo, mas não representa números próximos de zero
e ocorre uma descontinuidade na representação, com os
números próximos a zero não sendo representados.
Underflow não é o mesmo que imprecisão, pois os dados
na faixa de underflow não podem ser representados,
ocorrendo estouro no expoente. No caso de imprecisão,
a normalização permite que o dado seja representado,
mas de modo impreciso.
Números Reais
CARACTERÍSITICA
Característica é o expoente, representado como excesso
de n, ou seja, Característica = expoente + excesso.
A representação substituindo expoente por característica
implica que todas as características serão positivas, de
forma que é possível eliminar a representação do sinal
do expoente.
Exemplo de representação em ponto flutuante
A família de computadores IBM/370 representava os dados em ponto
flutuante com base implícita = 16, no seguinte formato:
SN (1 bit).Característica (7 bits).Matissa (24 bits)
No caso da IBM, o excesso é de 6410, ou seja, Característica =
Expoente + 6410.
Por exemplo, Expoente = 810, logo Característica = 810 + 6410 = 7210
Assim, uma característica entre 0 e 6310 significa que o expoente é
negativo, enquanto uma característica entre 65 e 127 significa que o
expoente é positivo.

Potrebbero piacerti anche