Upload
internet
View
117
Download
3
Embed Size (px)
Citation preview
Representação de dados
Livro
Introdução à Organização de Computadores
Capítulo:
7 – Representação de dados
Representação de dados
Dados podem ser representados de diversas formas:• Texto• Numérico• Binário• Matriz• Lógico• Outros
Algumas não são usadas nos processadores, mas nos compiladores.
Representação de dados
Entrada:• 143 (caracteres 1, 4 e 3, nessa ordem)
Compilador transforma no número, ou outra forma que o programa for usar• 10001111
A arquitetura é o limite para a representação dos dados
Entrada: Texto Compilador Saída: Dados
Representação de dados
Tipos de dados
Dados podem ser representados de diversas formas: • VAR ANOS:INTEGER;• VAR ANOS REAL;
Representação de dados
Soma 1249+ 3158 usando inteiros:
011
1249
+3158
--------
4407
Representação de dados
Soma 1249+ 3158 usando notação científica:• Converter: 1249 = 0,1249 * 104
3158 = 0,3158 * 104
• Calcular: 011
0,1249
+0,3158
--------
0,4407
Resultado: 0,4407 * 104
Representação de dados
Representações numéricas:
12352788 * 35697008 = 440.957.562.058.304
Em uma tela pequena:
4,41 E 14 => 4,41 * 1014
Representação de dados
Tipos de dados: Caractere
Como representar texto quando você só tem 0s e 1s?
=> Usando tabelas de codificação
Representação de dados
Exemplos:• BCD – Representação de 6 bits• EBCDIC – Representação de 8 bits da
IBM• ASCII – Representação de 7 bits usada
em PCs. Posteriormente modificada para 8 bits
• Unicode – Tabela de 16 bits, em definição por um comitê internacional
Representação de dados
Dados são usualmente inseridos como texto, e depois convertidos para outros formatos através da compilação.
FOR I=0 TO 12
READ NOTA(I)
NEXT I
Esse texto é convertido em código de máquina e variáveis pelo compilador.
Representação de dados
Tipo de dados: Lógico
Pode assumir os valores verdadeiro (usualmente representado pelo bit 1) ou falso (usualmente representado pelo bit 0).
Representação de dados
Operadores lógicos: AND (E lógico)
A operação lógica E será verdadeira se e somente se todas as variáveis de entrada forem verdadeiras
Tabela verdade da operação lógica E (AND)
A B X=A AND B ou X=A * B
0 0 00 1 01 0 01 1 1
Representação de dados
Exemplo: A = 0110 e B=1110 Qual o valor de X = A * B?
0110
and 1110
-------
0110
Representação de dados
Operadores lógicos: OR (ou lógico)
A operação lógica OU será verdadeira se qualquer uma das variáveis de entrada for verdadeira.
Tabela verdade da operação lógica OU (OR)
A B X=A OR B ou X=A + B
0 0 00 1 11 0 11 1 1
Representação de dados
Exemplo: A = 0110 e B=1110 Qual o valor de X = A + B?
0110
or 1110
-------
1110
Representação de dados
Operadores lógicos: NOT (não lógico)
A operação lógica NOT é conhecida como inversora ou complemento. Ela inverte o valor de entrada.
Tabela verdade da operação lógica NÃO (NOT)
A X=NOT A ou X=
0 11 0
Representação de dados
Exemplo: Para os valores A=1, B=101 e C= 111000, calcule X=, X= e X=
Representação de dados
Prioridade. Em operações lógica, a operação de inversão é sempre feita primeira, seguida da operação E, seguida da operação OU. Exemplo:
X=A+B*
Primeiro é feito a inversão de C, depois a operação B*, e finalmente A + (resultado de B*.
Representação de dados
Operadores lógicos: Exclusive OR (Ou exclusivo)
A operação lógica XOR será verdadeira se somente uma das variáveis de entrada for verdadeira.
Tabela verdade da operação lógica OU exclusivo
A B X=A XOR B
0 0 00 1 11 0 11 1 0
Representação de dados
Tipos de dados: Numérico
Três coisas são triviais para nós na hora de representar números, mas são problemas para a implementação de um computador:• Sinal de um número (positivo/negativo);• Representação da vírgula;• Quantidade de algarismos dos números;
Representação de dados
Representação da vírgula: Ponto fixo
Representa o número sempre com exatamente o mesmo número de dígitos antes e depois da vírgula.
Posições mais comuns:• Vírgula totalmente à esquerda: Número
totalmente fracionário (pouco usado hoje);
• Vírgula totalmente à direita: Número inteiro.
Representação de dados
Representação de sinal: Sinal e magnitude
Usualmente o bit mais significativo (mais à esquerda) indica o sinal do número.
001101102 -> 54
101101102 -> -54
Com essa notação, com n bits, é possível representar números de -(2n-1-1) até (2n-1-1). Ou seja, com 8 bits é possível representar números de -127 até 127. Esta forma não é usada computacionalmente.
Representação de dados
Aritmética com sinal e complemento:• Verificar sinal de cada número para
identificar operação (soma ou subtração);• Identificar o maior número e respectivo
sinal;• Subtrair o menor do maior;• Aplicar o sinal do maior;
Representação de dados
Representação de números negativos em complemento
Tem a vantagem de ser computacionalmente mais simples e rápido, além de desperdiçar uma posição com um valor -0
Definido como: complemento de N = Bn-N+1
Exemplo, N=7610, utilizando 4 dígitos.
C10 de 76= 9999-0076+1=9924
Representação de dados
Representação numérica: Overflow
Quando um número excede a capacidade do processador, um “flag” ou marcador é ativado para que o software tome providências a respeito.
Representação de dados
Representação numérica: Ponto flutuante
Muitos cálculos utilizam números muito grandes ou muito pequenos. Cálculos com ponto fixo seriam ineficientes com esses valores.
Para estes cálculos é usado o ponto flutuante ou notação científica.
Representação de dados
Representação normalizada
Um número pode ser representado de diversas formas:• 25• 25 * 1010
• 0,25 * 10+2
• 2500 * 10-2
A normalização visa uniformizar a representação.
Representação de dados
Representação normalizada
A mantissa ou parte fracionária deve satisfazer a seguinte expressão:
1/B <= M <= 1 (exceto se M=0)
Traduzindo: o primeiro digito da mantissa deve ser diferente de zero.
Representação de dados
Conversão de números para ponto flutuante leva em consideração os seguintes elementos:• Quantidade de bits/bytes dos dados;• Modo de representação da parte fracionária;• Modo de representação da parte do expoente;• Quantidade bits definida para o expoente e
mantissa;• Posição do sinal da mantissa e do expoente;• Valor da base da exponenciação.
Representação de dados
S – Sinal do número
E – Expoente: 1 bit para sinal, 6 para magnitude
M – Mantissa, normalizada
Base de exponenciação: 2
S MantissaExpoente
1 7 24
Representação de dados
Exemplos:
Conversão de valores decimais para ponto flutuante:
407,375:
00001001110010111011000000000000
Sinal: 0
Expoente: 0001001
Mantissa: 110010111011000000000000
Representação de dados
Representação decimal
Em alguns casos, como em balanços bancários, é interessante que todos os dígitos sejam representados exatamente, não importando o tamanho. Arredondamentos não são aceitáveis. Nesses casos pode ser usado o sistema de representação decimal, no qual cada digito é convertido individualmente para binário.
Representação de dados
Exemplo:
7458:
0111 0100 0101 1000
7 4 5 8