Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Trabalho AOC - CESJF, Trabalhos de Cultura

Trabalho de AOC do curso Sistemas de Informação do CES/JF (Representação Binária)

Tipologia: Trabalhos

2010

Compartilhado em 14/05/2010

kadu-velasco-5
kadu-velasco-5 🇧🇷

9 documentos

1 / 22

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
CES
Centro de Ensino Superior de Juiz de Fora
Bacharelado em Sistemas de Informação
1
Arquitetura e Organização de computadores
Representação
Binária
Carlos Eduardo O. Velasco
1º Semestre / 2009
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Pré-visualização parcial do texto

Baixe Trabalho AOC - CESJF e outras Trabalhos em PDF para Cultura, somente na Docsity!

Bacharelado em Sistemas de Informação

Arquitetura e Organização de computadores

Representação

Binária

Carlos Eduardo O. Velasco 1º Semestre / 2009

Bacharelado em Sistemas de Informação

1 – Representação Binária

Os computadores modernos utilizam apenas o sistema binário, isto é, todas as informações armazenadas ou processadas no computador usam apenas DUAS grandezas, 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.

Havendo apenas dois algarismos, portanto dígitos binários, o elemento mínimo de informação nos computadores foi apelidado de bit (uma contração do inglês binary digit).

Na base 2, o número "10" vale dois. Mas se 10 2 = 2 10 , então dez é igual a dois?

Não, dez não é e nunca será igual a dois!

Na realidade, "10" não significa necessariamente "dez". Nós estamos acostumados a associar "10" a "dez" porque estamos acostumados a usar o sistema de numeração decimal. O número 102 seria lido "um-zero" na base 2 e vale 2 10 (convertido para "dois" na base dez), 105 seria lido "um-zero" na base 5 e vale 5 10 (convertido para "cinco" na base dez), 1010 pode ser lido como "um-zero" na base 10 ou então como "dez" na base dez, 1016 seria lido "um-zero" na base 16 e vale 16 10 (convertido para "dezesseis" na base dez), etc.

Portanto, 10 só será igual a dez se, e somente se, o número estiver representado na base dez!

Uma curiosidade: o número "10b" vale sempre igual à base, porque em uma dada base b os algarismos possíveis vão 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 e assim, numa dada base qualquer, o valor da base será sempre representado por "10"!

Obs.: Toda vez que um número for apresentado sem que seja indicado em qual sistema de numeração ele está representado, estenderemos que a base é dez. Sempre que outra base for utilizada, a base será obrigatoriamente indicada.

Quem programa computadores precisa conhecer a representação em binário! Vamos começar entendendo as potências de dois:

Representação Binária Potência Representação Decimal

1 20 1

10 21 2

100 22 4

1000 23 8

10000 24 16

100000 25 32

Bacharelado em Sistemas de Informação

Esta representação, embora cômoda para cálculos no papel, não é adequada para processamento no computador.

Representação em ponto flutuante Consideremos o número 57,683 usado acima como exemplo. Este número pode ser também

expresso como 57,683 x 10^0. E também poderia ser expresso com 57683 x 10-3 ou ainda

0,57683 x 10^2. Na realidade, qualquer número, inteiro ou fracionário, pode ser expresso neste formato número x base expoente, em que variamos duas coisas: a posição da vírgula (que delimita a parte fracionária) e a potência à qual elevamos a base. Essa representação é denominada representação em ponto flutuante, pois o ponto varia sua posição, modificando, em consequência, o valor representado.

Representação normalizada Na representação normalizada, o número é preparado movendo a vírgula para a direita ou para a esquerda de forma que o número seja menor que 1, o mais próximo possível de 1, obviamente multiplicado por uma potência da base de forma a manter o valor do número. Em geral, isso significa que o primeiro dígito significativo seguirá imediatamente ao ponto (ou vírgula). Por exemplo:

57,683 10 → normalizando → 0,57683 x 10^2

0,0004628 10 → normalizando → 0,4628 x 10-

0,00001011 2 → normalizando → 0,1011 x 2-

De forma genérica, podemos representar a forma normalizada: ± número x base ±expoente A parte do número representado dessa forma normalizada (os algarismos significativos), damos o nome de mantissa. E portanto podemos representar:

± 0,M x B ± e onde M é a mantissa, B é a base e e é o expoente.

Representação de números reais no computador Uma forma comum de representação de números reais no computador pode ser expressa como segue:

Pode-se notar que a base não é expressa. Como a base, para cada computador, será sempre a mesma, não há necessidade de apresentar a base na representação (no exemplo, a base é 2). Dizemos que a base é implícita. Para cada computador, o número total M de bits para a representação, o número de bits para SN (sinal do número), para SE (sinal do expoente), para a mantissa e para o expoente, são pré-

Bacharelado em Sistemas de Informação

definidos em projeto. Assim, podemos concluir que, quanto maior o número de bits para o expoente, maior será a faixa de números que o computador pode representar (maior alcance); e quanto maior o número de bits para a mantissa, maior a precisão da representação. Porém, reduzindo-se a mantissa, perde-se precisão e há maior a necessidade de truncar o número (truncar um número é cortar algarismos significativos que não podem ser representados).

Considerando-se a representação acima, na base implícita 2: maior expoente possível E: 2x^ - 1 maior mantissa possível: 2y^ - 1 maior número real: +(0.111...1 x 2E) sendo E = 2x^ - 1 menor número real: -(0.111...1 x 2E) sendo E = 2x^ - 1 menor real positivo: +(0.100...0 x 2-E^ sendo E = 2x^ - 1 maior real negativo: -(0.100...0 x 2-E^ sendo E = 2x^ - 1

Faixa de representação

Como vimos anteriormente, a representação em ponto flutuante tem limites de alcance e de precisão. O alcance é limitado pelo número de bits do expoente. A precisão é determinada pelo número de bits da mantissa.

Ocorre overflow1 quando o valor absoluto do dado a ser representado excede a capacidade de representação, porque o número de bits do expoente (neste caso, positivo) é insuficiente para representar o dado.

Um outro problema ocorre na região de números próximos de zero, que tem o maior expoente negativo possível. Ocorre underflow^1 quando o valor absoluto do dado 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 os números muito próximos de zero e ocorre uma descontinuidade na representação, com os números próximos a zero não sendo representados. Underflow1 não é o mesmo que imprecisão. Dados na faixa de underflow1 não podem ser

1 Ver item 2: Overflow Underflow

Bacharelado em Sistemas de Informação

grande capacidade e muito rápidos e os suportes de armazenamento que comunicam através de ligações USB, tais como as drives USB.

Ao nível da transmissão de informação, a grande vantagem da representação digital é permitir a utilização de qualquer sistema de comunicações com capacidade de transportar informação digital (bits) já que este possui o potencial necessário para transmitir informação multimédia digital. Por exemplo, a Internet é constituída por um conjunto de redes que interligam computadores dispersos por várias localizações geográficas e pode ser utilizada para transmitir informação multimédia. Já a RDIS (Rede Digital de Integração de Serviços) é uma rede de comunicações que foi desenvolvida com o propósito específico de integrar o transporte de todos os tipos de media.

Contudo, existem outros benefícios associados à transmissão digital quando comparada com a transmissão analógica da informação:

  • Os sinais digitais são menos sensíveis ao ruído de transmissão do que os sinais analógicos.
  • O processo de regeneração do sinal, isto é, o processo pelo qual o sinal, que foi atenuado devido a transmissões a longas distâncias, é fortalecido ou amplificado, torna-se muito mais simples.
  • Quer a detecção, quer a correção de erros de transmissão, podem ser implementadas com maior facilidade.
  • A cifragem da informação, muito importante para assegurar a segurança das trocas de informação, torna-se igualmente muito mais simples.

Ao nível do processamento de informação, dado que toda a informação reside nos computadores, esta pode ser manipulada, analisada, modificada, alterada e complementada por programas de computador. Este é o aspecto em que o potencial da representação digital é mais elevado.

Desvantagens

A maior desvantagem da representação digital da informação reside na distorção introduzida durante a digitalização ou conversão A/D. O processo da amostragem, seguido da quantificação e codificação dos valores amostrados pode, como se viu, introduzir distorções e conduzir a perdas de informação. Como resultado, o sinal que se obtém após a conversão D/A, e que é apresentado ao utilizador final tem poucas probabilidades de ser completamente idêntico ao sinal original.

As formas de se reduzir a distorção introduzida pela digitalização incluem:

  • Aumentar a taxa de amostragem, aumentando assim a fidelidade da discretização no tempo e/ou no espaço;
  • Aumentar o número de bits utilizados para codificar as amostras, aumentando a fidelidade da discretização de amplitude.

Contudo, aumentando a taxa de amostragem e o número de bits por amostra obtém-se um maior número de bits por unidade de tempo e/ou de espaço, isto é, um maior débito binário,

Bacharelado em Sistemas de Informação

um valor que também se designa por débito binário ou bit rate. Em suma, aumenta-se o número de bits necessários para representar a informação.

No entanto, existem limites tecnológicos ao aumento do bit rate. Por um lado, a capacidade de armazenamento é finita e escassa e, por outro, os sistemas de transmissão de informação possuem larguras de banda limitadas. Uma forma de resolver este problema consiste em balancear a precisão da amostragem e da quantificação (que determina o bit rate) com as distorções que são perceptíveis aos utilizadores, isto é, aumentar gradualmente a taxa de amostragem e o número de bits por amostra apenas até a um ponto em que as distorções deixem de ser perceptíveis. Contudo, deve ter-se em mente que reduzir as distorções ao mínimo perceptível não significa eliminá-las por completo, o que implicaria uma taxa de amostragem e um número de bits por amostra excessivamente elevados.

1.1.4 - Exemplos Exemplo de representação em ponto flutuante a) Representação no IBM / A família IBM /370 representa os dados em ponto flutuante com base implícita = 16, no seguinte formato:

sendo: SN = sinal do dado

CARACTERÍSTICA = o expoente, representado na forma de excesso de n, ou seja, CARACTERÍSTICA = EXPOENTE + EXCESSO No caso da IBM, o excesso é de 64 10 , portanto: CARACTERÍSTICA = EXPOENTE + 64 10

Exemplificando: expoente = 8 10 , logo característica = 8 10 + 64 10 = 72 10

Assim, uma característica entre 0 e 63 10 significa que o expoente é negativo, enquanto uma característica entre 65 e 127 significa que o expoente é positivo (característica igual a 64 10 significa expoente igual a 0)..

Exemplo: Representar 25,5 10 Como a base implícita é 16, vamos converter para hexadecimal: 25 / 16 = 1, resto 9 logo: 25 10 = (^1916) Parte fracionária: 0.5 x 16 = 8, Logo: 25,5 10 = 19,8 16 x 16^0 Normalizando: 19,8 16 x 16^0 = 0,198 16 x 16^2. Em binário com 24 bits, a mantissa normalizada será: 0,198 16 = 0001.1001.1000.0000.0000.

Obs.: Como o número 0,19816 será representado em 24 bits, os bits não representativos (à

Bacharelado em Sistemas de Informação

embora a mantissa no PDP seja representada com 23 bits e no IBM /370 com 24 bits, a precisão na representação é a mesma. Obs.1: Leia-se o SEMPRE da obs. acima como quase sempre. A única exceção corre por conta do zero, que nesse caso tem um tratamento especial. Em binário com 23 bits, a mantissa normalizada será (lembrando que o primeiro bit 1 não é representado): 0,1100112 = 100.1100.0000.0000.0000.

Obs.: Como o número 0,110011 2 será representado em 23 bits, os bits não representativos (à direita) serão preenchidos com zeros. Como o expoente é 5, a característica será: 5 10 + 128 10 = 133 10. Em binário com 8 bits, será:

Portanto, a representação será:

Exercício: Qual das representações de ponto flutuante nos dois computadores exemplificados acima tem o maior alcance?

Resp.: O alcance de uma representação depende do valor da base implícita, elevado ao maior valor que a característica pode assumir. O maior alcance será o que tiver o maior valor de Be^ ou seja, base elevada ao maior valor possível da característica. O IBM /370 tem 7 bits para característica (maior característica = 63) e base implícita 16, portanto 16^63 = (2^4 ) 63 = 2^252 O PDP tem 8 bits para característica (maior característica = 127) e base implícita 2, portanto 2127 Conclusão: A representação em ponto flutuante do IBM /370 tem maior alcance que a do PDP

2 - Overflow, Underflow

2.1 - Conceitos

Overflow é o nome do resultado incorreto ao qual chegamos quando tentamos somar números grandes demais e o resultado não pode ser armazenado e nem representado em 32 bits. Ele pode ocorrer quando efetuamos as seguintes operações:

  • Somamos dois números positivos
  • Somamos dois números negativos
  • Subtraímos um número negativo de um positivo.

(Veja no apêndice B: Aritmética em Ponto Flutuante)

Bacharelado em Sistemas de Informação

É de responsabilidade do hardware sempre verificar se ocorreu um overflow nestes casos. Normalmente, para fazer a verificação basta conferir os sinais dos números. Em caso afirmativo, ele deve ativar um sinal de exceção. O que é feito caso uma exceção seja detectada depende de cada programa.

O MIPS, por exemplo, sempre armazena o endereço da última instrução que gerou exceção em um registrador especial chamado EPC. A instrução mfc0 (Move from System Control) é usada para copiar este endereço para um registrador de propósito geral que pode ser conferido por algum programa. Cabe ao programador deste programa decidir o que fazer.

Em lingüagens de alto nível, o comportamento depende da lingüagem usada. C, por exemplo, ignora todos os Overflows. Ao contrário de Fortran ou Ada que requerem que o programa sempre seja avisado.

Underflow é o que acontece quando lidamos com um número real tão próximo de 0 que o valor do expoente não pode ser corretamente representado. Quando um programa requer uma precisão tão grande assim, recomenda-se o uso de pontos flutuantes de dupla precisão (double) para evitar este inconveniente.

3 - Representação de Caracteres/Símbolos

A representação de caracteres e símbolos em computador é feita atribuindo-se a cada caractere ou símbolo um código binário. Desta forma são construídas tabelas (padrões) em que cada código binário representa para o computador um determinado caractere ou símbolo.

Cada computador (ou cada fabricante) adota um determinado padrão. O número de bits que será utilizado no padrão é uma decisão do fabricante e determinará quantos caracteres (e símbolos) poderão ser representados. Nota: Se um padrão utiliza 7 bits, será possível representar até 2^7 = 128 caracteres e símbolos e com 8 bits serão 2^8 = 256.

O principal padrão hoje utilizado é o ASCII, de 7 bits, com uma variação de 8 bits (ASCII extendido) em que o 8º^ bit permite representar outros 128 símbolos.

Nota 1: Nos computadores PC, devido às diferenças lingüísticas, com a necessidade de representar caracteres diferentes para para dar suporte a outras línguas que não o inglês,

Bacharelado em Sistemas de Informação

0001 0100 20 14 ^T DC4 Device-Control 4 0001 0101 21 15 ^U NAK Neg-Acknowledge - Não-reconhecimento 0001 0110 22 16 ^V SYN Synchronous Idle 0001 0111 23 17 ^W ETB End-of-Transmission Block 0001 1000 24 18 ^X CAN Cancel 0001 1001 25 19 ^Y EM End-Of-Medium 0001 1010 26 1A ^Z SUB Substitute 0001 1011 27 1B ^[ ESC Escape 0 001 1100 28 1C ^\ FS File Separator 0001 1101 29 1D ^] GS Group Separator 0001 1110 30 1E ^^ RS Record Separator 0001 1111 31 1F ^_ US Unit Separator 0111 1111 127 7F ^? DEL Delete

3.1.2 - Caracteres imprimíveis

Binário Decimal Hexa Glifo

0010 0000 32 20

0010 0001 33 21!

0010 0010 34 22 "

0010 0011 35 23 #

0010 0100 36 24 $

0010 0101 37 25 %

0010 0110 38 26 &

0010 0111 39 27 '

0010 1000 40 28 (

0010 1001 41 29 )

0010 1010 42 2A *

0010 1011 43 2B +

0010 1100 44 2C ,

0010 1101 45 2D -

0010 1110 46 2E.

Bacharelado em Sistemas de Informação

0010 1111 47 2F /

0011 0000 48 30 0

0011 0001 49 31 1

0011 0010 50 32 2

0011 0011 51 33 3

0011 0100 52 34 4

0011 0101 53 35 5

0011 0110 54 36 6

0011 0111 55 37 7

0011 1000 56 38 8

0011 1001 57 39 9

0011 1010 58 3A :

0011 1011 59 3B ;

0011 1100 60 3C <

0011 1101 61 3D =

0011 1110 62 3E >

0011 1111 63 3F?

0100 0000 64 40 @

0100 0001 65 41 A

0100 0010 66 42 B

0100 0011 67 43 C

0100 0100 68 44 D

0100 0101 69 45 E

0100 0110 70 46 F

Bacharelado em Sistemas de Informação

0101 1111 95 5F _

0110 0000 96 60 `

0110 0001 97 61 a

0110 0010 98 62 b

0110 0011 99 63 c

0110 0100 100 64 d

0110 0101 101 65 e

0110 0110 102 66 f

0110 0111 103 67 g

0110 1000 104 68 h

0110 1001 105 69 i

0110 1010 106 6A j

0110 1011 107 6B k

0110 1100 108 6C l

0110 1101 109 6D m

0110 1110 110 6E n

0110 1111 111 6F o

0111 0000 112 70 p

0111 0001 113 71 q

0111 0010 114 72 r

0111 0011 115 73 s

0111 0100 116 74 t

0111 0101 117 75 u

0111 0110 118 76 v

Bacharelado em Sistemas de Informação

0111 0111 119 77 w

0111 1000 120 78 x

0111 1001 121 79 y

0111 1010 122 7A z

0111 1011 123 7B {

0111 1100 124 7C |

0111 1101 125 7D }

0111 1110 126 7E ~

3.2 – Tabelas EBCDIC

Extended Binary Coded Decimal Interchange Code (EBCDIC) é uma codificação de caracteres 8- bit que descende diretamente do código BCD com 6-bit e foi criado pela IBM como um padrão no início dos anos 1960 e usado no ibm 360.

Como consequência daquela descendência direta o código EBCDIC podia ser truncado para 6 bit dando origem ao código BCD com 6 bit.

Representa uma primeira tentativa de normalização em paralelo com a normalização ASCII utilizada pelo governo dos Estados Unidos da América no final dos anos 1960.

No EBCDIC são utilizados pela primeira vez 8 bit - 1 byte - para codificar um estado existindo assim a possibilidade de codificar 256 estados diferentes.

3.3 – Tabela Unicode

Unicode é um padrão que permite aos computadores representar e manipular, de forma consistente, texto de qualquer sistema de escrita existente. Publicado no livro The Unicode Standard, o padrão consiste de um repertório de cerca de cem mil caracteres, um conjunto de diagramas de códigos para referência visual, uma metodologia para codificação e um conjunto de codificações padrões de caracteres, uma enumeração de propriedades de caracteres como caixa alta e caixa baixa, um conjunto de arquivos de computador com dados de referência, além de regras para normalização, decomposição, ordenação alfabética e renderização.

Atualmente é promovido e desenvolvido pela Unicode Consortium, uma organização sem fins lucrativos que coordena o padrão, e que possui a meta de eventualmente substituir esquemas de codificação de caractere existentes pelo Unicode e pelos esquemas padronizados de transformação Unicode (chamado Unicode Transformation Format, ou UTF). Seu desenvolvimento é feito em conjunto com a Organização Internacional para Padronização (ISO) e compartilha o repertório de caracteres com o ISO/IEC 10646: o Conjunto Universal de

Bacharelado em Sistemas de Informação

Bacharelado em Sistemas de Informação

Quando o programa de computador de visualização não puder visualizar e processar o código Unicode corretamente, geralmente, imprime somente um retângulo, uma área em aberto ou o caractere Unicode de substituição (U+FFFD, � ), para indicar que o caractere não é reconhecido. Alguns sistemas tentam retornar mais informações sobre os caracteres não reconhecidos. A fonte LastResort da Apple imprime um glifo substituto indicando o bloco Unicode do caractere. Já a fonte Unidode da SIL imprime uma caixa com o valor hexadecimal do caractere.

Apêndice A: Representação em Octal e em Hexadecimal

Em projetos de informática (isto é, nos trabalhos realizados pelos programadores, analistas e engenheiros de sistemas), é usual representar quantidades usando sistemas em potências do binário (octal e principalmente hexadecimal), para reduzir o número de algarismos da representação e consequentemente facilitar a compreensão da grandeza e evitar erros. No sistema octal (base 8), cada três bits 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).

A seguir, apresentamos uma tabela com os números em decimal e sua representação correspondente em binário, octal e hexadecimal:

Base 10 Base 2 Base 8 Base 16 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F

Nota: a base 16 ou sistema hexadecimal pode ser indicada também por um "H" ou "h" após o número; por exemplo: FFH significa que o número FF (ou 255 em decimal) 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".

Exemplo: Como seria a representação do número 10 16 em binário, octal e hexadecimal?

Solução: Seria respectivamente 10000 2 , 20 8 e 10 16.