














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
Os melhores documentos à venda: Trabalhos de alunos formados
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
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
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.