• Nenhum resultado encontrado

Sistemas posicionais de numeração

No documento Básico Redes de Comp (páginas 37-53)

Um pouco mais adiante na história, apareceram os números romanos (até hoje utilizados para referenciar séculos) utilizado em todo o império romano. Nessa forma de representação, ou nesse sistema numérico, letras são os símbolos utilizados para representar quantidades. Nesse sentido, cada letra representa uma quantidade pré-definida. Veja exemplos na tabela 1.

Tabela 1 – Exemplos de números representados no sistema numérico romano

ROMANA REPRESENTAçãO I Um II Dois III Três IV Quatro V Cinco IX Nove X Dez C Cem

CXVI Cento e dezesseis

D Quinhentos

DCXX Seiscentos e vinte

M Mil

MMVIII Dois mil e oito

Contudo o sistema romano, apesar de amplamente utilizado pelo império, é um sistema numérico que apresenta deficiências em operações aritméticas. Outras formas de representações surgiram ao longo da civilização. Entre essas outras formas, surgiram os algarismos arábicos. Segundo Weber (2004), com os seguintes símbolos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9):

٠

,

٩

,

٨

,

٧

,

٦

,

٥

,

٤

,

٣

,

٢

,

١

Note que nessa representação (ao contrário da romana) aparece o número zero, uma invenção indo-arábica das mais importantes da humanidade. Nessa forma de representação numérica, dez símbolos diferentes são utilizados para se representar qualquer número natural. Esse sistema numérico é o mais ampla- mente conhecido e utilizado atualmente e é conhecido como sistema decimal ou sistema numérico posicional de base 10.

Além dos sistema decimal, outros sistemas numéricos se destacam e são importantes para a computação: o binário (sistema numérico posicional de base 2), o octal (sistema numérico posicional de base 8) e o hexadecimal (sistema numérico posicional de base 16).

Mas você já parou para pensar e tentar descobrir o porquê da popula- rização da sistema de base 10 em relação aos dos demais tipos de base? A resposta é simples. Lembra-se de que no início da aula foi exposto que os dedos talvez tenha sido a primeira forma de representação numérica pelo ser humano e é uma representação natural? Pois bem, a reposta está aí. O sistema decimal se destaca exatamente porque o ser humano tem 10 dedos. Ao contrário do que muita gente pensa, de que o sistema decimal é mais fácil de se trabalhar, os demais sistemas funcionam exatamente iguais aos de base 10. Entretanto podemos achar mais simples o decimal exatamente por estarmos acostumados desde criança com essa forma de representação.

Como veremos a seguir, todas as representações posicionais são regidas por uma única lei: lei de formação.

Vejamos como se compoe um número pela lei de formação: Número = an ∙ bn + a

n-1 ∙ bn-1 + an-2 ∙ bn-2 + ... + a0 ∙ b0 em que:

b = base do número (exemplo: base 2, 8, 10 e 16) n = quantidade de algarismos - 1

an = algarismos de acordo com sua posição (daí o nome sistema posicional) Exemplo

O número 1982 no sistema decimal é composto por 1 milhar, 9 centenas, 8 dezenas e 2 unidades.

1000 + 900 + 80 + 2 = 1982

Esse número pode ser decomposto também da seguinte maneira: 1982 = 1000 + 900 + 80 + 2

= 1x1000 + 9x100 + 8x10 + 2x1 = 1x103 + 9x102 + 8x101 + 2x100

Note que a última linha é a representação do número 1982 no sistema decimal pela lei de formação. Nesse sentido, a idéia é adotar pesos dife- rentes para posições diferentes de algarismos (idéia de representação posi- cional). Assim, quanto mais à esquerda, maior seu peso, sempre 10 (base) vezes maior.

3.1 Sistema binário (Base 2)

Vimos que o sistema decimal (base 10) utiliza dez símbolos diferentes para representar qualquer número natural. No sistema binário, como o próprio nome diz, existem apenas 2 símbolos para se representar: 0 (zero) e 1 (um).

Como já foi exposto anteriormente, o sistema binário obedece à lei de formação. Vejamos.

O número 1001, no sistema binário, de acordo com a lei de formação, é composto da seguinte forma: 1 = 1x23 + 0x22 + 0x21 + 1x20

O número 11011, no sistema binário, de acordo com a lei de formação, é composto da seguinte forma:

11011 = 1x24 + 1x23 + 0x22 + 1x21 + 1x20

Idoeta e Capuano (1998, p. 2) expõem que, no sistema binário

para representarmos a quantidade zero, utilizamos o algarismo 0, para representarmos a quantidade um, utilizamos o alga- rismo 1. E para representarmos a quantidade dois, se nós não possuímos o algarismo 2 nesse sistema? É simples. No sistema decimal, nós não possuímos o algarismo dez e representamos a quantidade de uma dezena utilizando o algarismo 1 seguido do algarismo 0. Neste caso, o algarismo 1 significa que temos um grupo de uma dezena e o algarismo 0 nenhuma unidade, o que significa dez.

Essa mesma idéia está presente também no sistema binário, proveniente da lei de formação. Para se representar o número dois, é utilizado o algarismo 1 seguido do algarismo 0. Assim, o algarismo 1 representa dois elementos (base 2 ao invés de 10 do sistema decimal) e 0 representa nenhuma unidade.

Ao contrário do decimal, em que cada posição de algarismo recebe um nome (unidade, dezena, centena, milhar, etc), no binário cada algarismo é chamado de bit (binary digit – dígito binário, em português). As denominações no sistema binário aparecem pela quantidade de bits. Veja tabela 2.

Tabela 2 – Nibble, Byte, Word

BITS DENOMINAçãO

4 Nibble

8 Byte

Gates (1995) apresenta uma forma diferente, no intuito de facilitar o entendimento, sobre o sistema numérico binário. Gates introduz uma idéia diferente de como iluminar um ambiente. Imagine um quarto com uma única lâmpada de 250 watts. Contudo suponha que, ao invés de uma, o quarto tenha 8 lâmpadas de menor intensidade (de 1 a 128 watts). Veja figura 1.

Lâmpada de 128 watts Lâmpada de 64 watts Lâmpada de 32 watts Lâmpada de 16 watts Lâmpada de 8 watts Lâmpada de 4 watts Lâmpada de 2 watts Lâmpada de 1 watts

interruptor interruptor interruptor interruptor interruptor interruptor interruptor interruptor

Figura 1 – Lâmpadas de intensidade diferentes com seus interruptores Fonte: Gates (1995).

No ambiente, há um interruptor para cada lâmpada e elas são arranjadas em ordem crescente de potência da direita para a esquerda, ou seja, a de maior potência está mais à esquerda e a de menor mais à direita (note que é a mesma idéia dos pesos da lei de formação). Dessa forma, ao ligar e desligar os interruptores, é possível ajustar a iluminação do ambiente.

Se quiser somente 1 watt de luz, liga só o interruptor mais à direita. Se quiser 191 watts, liga todos os interruptores, com exceção do da lâmpada de 64 watts. Assim como se você quiser ajustar o nível de iluminação em 137 watts, ligam-se as lâmpadas de 128, 8 e 1 watts, como representado na figura 2. Lâmpada de 128 watts Lâmpada de 64 watts Lâmpada de 32 watts Lâmpada de 16 watts Lâmpada de 8 watts Lâmpada de 4 watts Lâmpada de 2 watts Lâmpada de 1 watts

interruptor interruptor interruptor interruptor interruptor interruptor interruptor interruptor

Figura 2 – Interruptores ajustados para produzir 137 watts Fonte: Gates (1995).

Gates (1995, p. 41) complementa que

para encurtar ainda mais a notação, você pode registrar cada “desligado” com 0 e cada “ligado”com 1. O que significa que, em vez de escrever “ligado, desligado, desligado, desli- gado, ligado, desligado, desligado, ligado”, vale dizer, ligue a primeira, a quarta e a oitava das oito lâmpadas e deixe as outras desligadas, você escreve a mesma informação como 1, 0, 0, 0, 1, 0, 0,1, 1 ou 10001001, um número binário. No caso, é 137.

A idéia de ligar e desligar interruptores é a que está por trás do sistema binário, como vimos. A princípio pode até parecer complicado, mas no sistema decimal essa mesma idéia é utilizada, regida pela lei de formação.

3.2 Sistema octal (Base 8)

O sistema octal, intuitivamente, nos induz que nesse sistema de numeração existem oito símbolos diferentes para se representar qualquer número natural, são eles: 0, 1, 2, 3, 4, 5, 6 e 7.

O sistema octal também obedece à lei de formação. Vejamos.

O número 735 no sistema octal, de acordo com a lei de formação, é composto da seguinte forma:

735 = 7x82 + 3x81 + 5x80

3.3 Sistema hexadecimal (Base 16)

O sistema hexadecimal possui 16 símbolos de representações. Como já vimos, os algarismos arábicos são apenas dez e, sendo assim, faltam ainda seis algarismos. Desse modo, o sistema hexadecimal fica constituído pelos seguintes símbolos ordenados crescentemente:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Note que A=10, B=11, C=12, D=13, E=14 e F=15. Lourenço e outros (1996, p. 7) dizem que “outros símbolos poderiam ser utilizados para repre- sentar as quantidades maiores que 9, porém, as letras foram escolhidas pela facilidade de manuseio”.

A lei de formação também rege o sistema hexadecimal, uma vez que ele também é um sistema de representação posicional.

Exemplo

O número A29F no sistema hexadecimal, de acordo com a lei de formação, é composto da seguinte forma:

A29F = Ax163 + 2x162 + 9x161 + Fx160 10x163 + 2x162 + 9x161 + 15x160

3.4 Padrões de representação

De acordo com Lourenço e outros (1996), existem vários padrões para se representar os números em diferentes bases. Os mais comuns são:

utilizar uma letra após o número para indicar a base; •

colocar o número entre parênteses e a base como um índice do número. •

Exemplos

Sistema decimal: 1673D ou (1673)10 Sistema binário: 1001B ou (135)2 Sistema octal: 753O ou (753)8

Sistema hexadecimal: F3AH ou (F3A)16

3.5 Tabela de conversão entre bases

Já vimos a idéia de alguns dos principais sistemas de representação posi- cional de números: decimal, binário, octal e hexadecimal. Conhecer suas equi- valências é de extrema importância para as conversões que serão estudadas mais adiante e são apresentadas na tabela 3.

Tabela 3 – Tabela de equivalência entre as bases 2, 8, 10 e 16

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

Faz-se necessário acrescentar que, assim como no sistema decimal, adicio- nando-se zeros à esquerda de um número em qualquer outra base, seu valor não é alterado. Exemplos a) 43610 = 043610 = 0043610 = 00043510 b) 111012 = 0111012 = 00111012 = 000111012 c) 6178 = 06178 = 006178 = 0006178 d) F4316 = 0F4316 = 00F4316 = 000F4316

3.6 Conversões de qualquer base para a base 10

Para se converter um número de qualquer representação posicional para a base 10, basta aplicar a lei de formação, substituindo b pela base do número a ser converto e an por seus algarismos.

Exemplos (11011)2: b = 2 (base do número) n = 5 – 1 = 5 (quantidade de algarismos – 1) 1x24 + 1x23 + 0x22 + 1x21 + 1x20 16 + 8 + 0 + 2 + 1 = (27)10 (3D9)16: b = 16 (base do número) n = 3 – 1 = 2 (quantidade de algarismos – 1) 3x162 + Dx161 + 9x160 3x162 + 13x161 + 9x160 768 + 208 + 9 = (985)10

3.7 Conversão da base 2 para qualquer base

Acabamos de ver que, para se converter um número de qualquer base para o sistema decimal, é utilizada a lei de formação que são, basicamente, suces- sivas multiplicações dos algarismos por seus pesos. Agora queremos o inverso, do sistema decimal para as demais bases. Sendo assim, precisamos realizar a operação matemática inversa que utilizamos anteriormente, ou seja, a divisão.

Lourenço e outros (1996, p. 9) dizem que

dado um número inteiro escrito na base 10, para se obter seu equivalente em uma base b qualquer, divide-se o número por b tantas vezes quantas necessárias para que o quociente da divisão seja menor que b. O último quociente da divisão e os restos das divisões sucessivas, tomados na ordem inversa, correspondem ao número na base b.

Exemplo (125)10 : ( ? )2 125 ÷ 2 = 62 e resto = 1 62 ÷ 2 = 31 e resto = 0 31 ÷ 2 = 15 e resto = 1 15 ÷ 2 = 7 e resto = 1 7 ÷ 2 = 3 e resto = 1 3 ÷ 2 = 1 e resto = 1 1 < 2 (base desejada)

Quando o quociente é menor que a base desejada, pára de se efetuar as divisões. O resultado da conversão é o último quociente concatenado com os restos das divisões do fim para o começo. Dessa forma, obtém (1111101)2.O mesmo exemplo anterior por ser visto na figura 3.

125 2 1 62 2 0 31 2 1 15 2 1 7 2 1 3 2 1 1 sentido da leitura (125)10 = (1111101)2

Figura 3 – Exemplo de múltiplas divisões na conversão do número (125)10 para a base 2 Fonte: Lourenço e outros (1996).

3.8 Conversão entre base 2 e 16

A conversão entre os sistemas binário e hexadecimal pode ser feita direta- mente, sem a necessidade de operações aritméticas. Isso ocorre porque existe uma estreita relação entre esses dois sistemas posicionais de representação. Afinal, o número 16 (base do sistema hexadecimal) pode ser expresso como 24 (repare o dois do sistema binário na base). Ou seja, os números hexadecimais podem ser vistos como uma representação compacta dos números binários. A conversão da base 2 para a base 16 é realizada da seguinte forma:

segmenta-se o número em parte de 4 (repare que quatro é a potência •

de 24) algarismos da direita para a esquerda;

cada segmento é convertido diretamente para o seu equivalente em •

hexadecimal (de acordo com a tabela 3). Exemplo

(1010011011)2 0010 1001 1011

2 9 B

A conversão da base 16 para a base 2 é realizada da seguinte forma: cada algarismo hexadecimal é convertido diretamente para o seu •

equivalente em binário com quatro bits (de acordo com a tabela 3). Exemplo

(54B)16

5 4 B

0101 0100 1011

3.9 Conversão entre as bases 2 e 8

A conversão entre as bases 2 e 8 também pode ocorrer diretamente, assim como entre as bases 2 e 16. Isso porque também há uma relação entre essas duas bases, afinal 8 também pode ser reescrito como 23. A conversão é direta, contudo, ao invés de se formar grupos de quatro algarismos, formam-se grupos de três algarismos.

Exemplo

(1010011011)2

001 010 011 011

1 2 3 3

Por outro lado, a conversão de um número octal em binário procede-se de modo idêntico ao da conversão da base 16 para a base 2. Assim, cada algarismo octal é convertido diretamente para o seu equivalente em binário de três bits (de acordo com a tabela 3).

Exemplo

(543)8

5 4 3

101 100 011

3.10 Conversão entre as bases 8 e 16

Falta apenas vermos mais uma conversão entre as bases analisadas. Para converter um número octal em hexadecimal é preciso realizar um passo interme- diário por meio do sistema binário. É simples de enxergar isso, uma vez que não conseguimos reescrever o número 16 na base 8 elevado a alguma potência. Contudo ambos podem ser reescritos respectivamente como 24 e 23, tendo ambos como base 2, ou seja, podem ser reduzidos diretamente para o sistema binário.

Exemplo

(543)8

5 4 3

101 100 011

Encontrado o binário, realiza-se a conversão da base 2 para a base 16.

0001 0110 0011

Na conversão de hexadecimal para octal, também é necessário um passo intermediário em que se utiliza o sistema binário. Assim, converte-se o número da base 16 para a base 2 e, em seguida, este para a base 8.

Exemplo

(1F4B)16

1 F 4 B

0001 1111 0100 1011

Encontrado o binário, se realiza a conversão da base 2 para a base 8.

001 111 101 001 011

1 7 5 1 3

3.11 Conversão de números fracionários

Os números fracionários também podem ser representados nas bases 2, 8 e 16. Afinal, esses números podem ser representados na base 10. Para isso, basta ampliar a aplicação da lei de formação:

Número = anbn + a

n–1bn–1 + an–2bn–2 + ... + a0b0 + a–1b–1 + a–2b–2 + ... + a–mb–m

Parte inteira Parte fracionária

em que:

b = base do número (exemplo: base 2, 8, 10 e 16). n = quantidade de algarismos da parte inteira – 1. an = algarismos de acordo com sua posição.

m = quantidade de algarismos da parte fracionária.

Vejamos alguns exemplos de conversão de números fracionários de outras bases para a base 10.

a) Base 2 para base 10

1101,0112 = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 + 0 x 2-1 + 1 x 2-2 + 1 x 2-3 = 8 + 4 + 0 + 1 + (0/2) + (1/4) + (1/8) = 13,37510

b) Base 8 para base 10

51,348 = 5 x 81 + 1 x 80 + 3 x 8-1 + 4 x 8-2 = 40 + 1 + (3/8) + (4/64) = 41,437510 c) Base 16 para base 10

1F,5C016 = 1 x 161 + 15 x 160 + 5 x 16-1 + 12 x 16-2 + 0 x 16-3 = 1 + 15 + (5/16) + (12/256) + (0/4096) = 16,35937510 A conversão da base 10 para as bases 2, 8 e 16 é um pouco diferente da parte fracionária. A parte inteira é convertida separadamente pelas divisões sucessivas. Para a parte fracionária, utiliza-se o processo das multiplicações sucessivas pela base desejada.

Exemplos

a) Base 10 para a base 2 7,42710 = parte inteira: 1112 parte fracionária: 0,25 0,50 0,0 FINAL x 2 x 2 0,50 1,0 0 1 7,42710 = 111,012

b) Base 10 para a base 2 (dízima periódica) 6,410 = parte inteira: 1102 parte fracionária: 0,4 x 2 = 0,8 0 0,8 x 2 = 1,6 1 Repetição 0,6 x 2 = 1,2 1 0,2 x 2 = 0,4 0 0,4 x 2 = 1,8 1 6,410 = 110,01100110011001100110...2

c) Base 10 para a base 8 26,210 = parte inteira: 328

parte fracionária: 146314361...8 (dízima periódica)

0,2 x 8 = 1,6 1

0, 6 x 8 = 4,8 4

0,8 x 8 = 6,4 6

0,4 x 8 = 3,2 3

0,2 x 8 = 1,6 1

d) Base 10 para a base 16 69,124610 = parte inteira: 4516

parte fracionária: 1FE516... (não periódica)

Estamos chegando ao fim desta aula, em que expusemos que existem vários sistemas de numeração. Dentre os sistemas de numeração, os de repre- sentação posicional (atribuição de pesos para cada posição de algarismo) se destacam pela facilidade de realização de operações aritméticas, que serão estudadas na próxima aula.

Síntese da aula

O ser humano desde sempre teve a necessidade de quantificar coisas, por isso a importância de sistemas numéricos. Além disso, com as representações numéricas torna-se possível realizar tarefas antes complexas de forma trivial. Dentre as várias formas de representações, destacam-se a decimal (com dez símbolos de representações), a binária (com dois símbolos) – amplamente utilizada nos computadores, a octal (com oito símbolos) e a hexadecimal (com dezesseis símbolos).

Diante disso, foi explicado durante a aula como se realizar conversões entre essas quatro formas de representação, que obedecem a uma única lei: a lei de formação. Basicamente, a lei de formação atribui pesos para as posições de cada algarismo de um número (idéia de sistema posicional). Por fim, foi apresentado como se representar números fracionários nas bases 2, 8 e 16.

Atividades

1. Realize a conversão dos números a seguir de acordo com as bases indicadas.

a) (F46A)16 = ( ? )10 c) (1001101)2 = ( ? )16 b) (295)10 = ( ? )2 d) (1A42)16 = ( ? )8 e) (765)8 = ( ? )10 g) (101,001)2 = ( ? )10 f) (1024)10 = ( ? )16 h) (B1,5)16 = ( ? )10 2. Leia as afirmativas a seguir sobre conversão de bases.

I. O número (765)10, (765)8 e (765)16 são iguais. II. O número (11001110)2 é maior que (D1)16.

III. Os números (11101010)2 e (504C)16 são números pares. Assinale a alternativa correta:

a) Somente I é verdadeira. b) Somente II é falsa. c) Somente III é verdadeira.

d) Todas as alternativas são verdadeiras.

Comentário das atividades

Na atividade 1, basta utilizar as conversões vistas durante a esta aula. Assim, as respostas corretas são (F46A)16 = (62570)10, (295)10 = (100100111)2, (1001101)2 = (4D)16, (1A42)16 = (15102)8, (765)8 = (501)10, (1024)10 = (400)16, (101,001)2 = (5,125)10, (B1,5)16 = (177,8)10.

Já na atividade 2, a resposta correta é a letra (c). O item (I) é falso porque (765)10 = (1375) 8 = (2FD)16. Já no item (II), o número (11001110)2 = 206 é menor que (D1)16 = (209)10, por isso é falsa. O item (III) é o único verdadeiro, pois (11101010)2 = (234)10 e (504C)16 = (20556)10. É necessário acrescentar que todo número binário terminado em 0 é par, assim como todo número octal terminado em 0, 2, 4 e 6, decimal terminado em 0, 2, 4, 6 e 8, e hexadecimal terminado em 0, 2, 4, 6, 8, A, C, E são pares. Os demais são ímpares. Se você conseguiu resolver estas atividades significa que compreendeu os sistemas de representação numérica de base 2, 8, 10 e 16 e suas conversões, que é o objetivo desta aula.

Referências

GATES, Bill. A estrada do futuro. São Paulo: Companhia das Letras, 1995. IDOETA, Ivan V.; CAPUANO, Francisco G. Elementos de eletrônica digital. 28. ed. São Paulo: Érica, 1998.

LOURENÇO, Antonio C.; CRUZ, Eduardo C. A.; FERREIRA, Sabrina R.; CHOUERI JÚNIOR, Salomão. Circuitos digitais. São Paulo: Érica, 1996. WEBER, Raul F. Fundamentos de arquitetura de computadores. 3. ed. Porto Alegre: Sagra Luzzatto, 2004.

Na próxima aula

Estudaremos as operações aritméticas no sistema binário e, assim, daremos continuidade ao que foi visto nesta aula, mas em uma abordagem de opera- ções matemáticas.

Objetivo

Esperamos que, ao final desta aula, você seja capaz de:

realizar as operações aritméticas no sistema binário de numeração •

utilizando números inteiros e de ponto flutuante.

Pré-requisitos

Para iniciarmos os estudos sobre operações aritméticas no sistema binário de numeração, é de suma importância o conhecimento dos sistemas posicio- nais de numeração, vistos na aula 3. O sistema binário é um dos sistemas posicionais de numeração, por isso a necessidade de estar familiarizado com esse tipo de sistema numérico.

Introdução

O sistema binário é um sistema de numeração posicional representado, em que todos os número são representados pelo conjunto de caracteres formados apenas por dois símbolos, 0 (zero) e 1 (um).

Os computadores digitais trabalham internamente com esse tipo de sistema, que também são denominamos como bits e podem representar qualquer tipo de número armazenado na memória. Esses números podem representar inteiros, ponto flutuante, negativos ou positivos.

A manipulação desses números por meio de aritmética simples e por meio de aritmética de ponto-flutuante é realizada utilizando algoritmos diversos, os quais serão apresentados durante esta aula.

4.1 Aritmética em sistemas binários

Os números podem ser representados utilizando qualquer base, seja ela binária, octal, decimal, hexadecimal ou outra qualquer. Para a computação

Aula 4

No documento Básico Redes de Comp (páginas 37-53)

Documentos relacionados