














Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Trabalho de AOC do curso Sistemas de Informação do CES/JF (Representação Binária)
Tipologia: Trabalhos
1 / 22
Esta página não é visível na pré-visualização
Não perca as partes importantes!















Bacharelado em Sistemas de Informação
Carlos Eduardo O. Velasco 1º Semestre / 2009
Bacharelado em Sistemas de Informação
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:
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:
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
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:
(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.
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 ~
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.
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.
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.