Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg...

12
Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 1/12

Transcript of Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg...

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 1/12

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 2/12

Sistemas de Numeração / 5º Projecto

A generalidade dos livros e cursos universitários versando Sistemas Lógicos/Digitais prefere começar por

abordar “Sistemas de Numeração”, só depois rodando a atenção para a Álgebra de Boole, Gates, etc…

O itinerário até agora percorrido é de certo modo inverso: primeiro, introduziram-se os chips SN74xx, como

meio de resolver problemas de engenharia; e só depois, a pretexto da optimização dos circuitos assim concebidos,

se abordou a álgebra de Boole – sem uma palavra sequer acerca de “Sistemas de Numeração”: foram de todo

irrelevantes...

Esta opção tem uma justificação: proporcionar aos estudantes, para quem este documento foi elaborado, o seu

envolvimento activo – isto é, o meter a mão na massa (leia-se: no laboratório) – tão cedo quanto possível, por

conseguinte sem o compasso de espera em que se traduziria estudar em primeiro lugar “Sistemas de Numeração”.

Como o próprio leitor irá constatar daqui por diante, não convém todavia protelar por mais tempo a sua

abordagem; é o que se fará nesta sessão – começando, como todas as outras Sessões, por enunciar um Projecto

concreto...

Considere que os candidatos a uma Universidade têm exame de aptidão a quatro disciplinas: Matemática,

Português, História e Arte. Um candidato é aceite se for aprovado em Matemática e ao menos noutra disciplina, ou

for aprovado em pelo menos três disciplinas.

Esse Projecto envolve 4 variáveis: a ideia é ir progredindo do mais simples para o mais complicado… Mas a

estratégia de resolução mantém-se: começar por elaborar a Tabela de Verdade… Ela encontra-se ao lado:

– à esquerda, dispõem-se quatro colunas, representando as quatro disciplinas {M, P, H, A}; conforme à praxis

recomendada, as colunas dispõem-se de modo a que a de maior peso, ‘M’, fique à esquerda…

– ‘R’, a Resposta do Circuito, volve-se ‘1’ (i.e., o candidato é aceite) apenas em cada uma das oito linhas em

que M=1 e há ao menos outro ‘1’, ou ocorrem três ou mais ‘1’s…

Exprimindo a saída como um somatório () de mintermos, vem

R = m (7, 9, 10, 11, 12, 13, 14, 15);

e exprimindo-a como um produtório () de maxtermos, vem

‘’R = M (0, 1, 2, 3, 4, 5, 6, 8).

(Abra-se um parêntesis: não se deverá deixar de reparar que os índices presentes no ‘’ são distintos daqueles

listados no ‘’. Isso não acontece por acaso, é claro: no ‘’, referem-se as linhas onde R=1, e, no ‘’, referem-se

as linhas onde R=0…)

A questão que é mister aprofundar agora é a seguinte: como se concluiu que, por exemplo, o identificador ‘13’

faz parte do ‘’? Dirá o leitor, e com razão: as sucessivas combinações de ‘0’s e ‘1’s nas colunas à esquerda

encontram-se ordenadas conforme a convenção enunciada aquando do 2º Projecto. Numerando consecutivamente,

de cima para baixo, essas combinações {vidé, à esquerda da Tabela, entre parêntesis: ‘0’, ‘1’, ‘2’, … até ‘15’},

confere-se qual o valor que ‘R’ assume para a combinação etiquetada por ‘13’ – e, porque se constata que, aí, R=1,

então é pacífico que, o ‘’ deverá comportar o número ‘13’…

Há, entretanto, que acentuar que o circuito tem apenas 4 variáveis… Isso viabiliza o escrever toda a Tabela de

Verdade numa única folha de papel… Mas é inevitável a pergunta: e se a saída do circuito depender de mais

entradas? Adiante-se desde já que, na continuação destas sessões, se irá considerar um circuito com 11 variáveis –

o que remete para uma Tabela com 211

=2048 linhas… E não se antecipa agradável a tarefa de a escrever toda para

discernir qual a combinação de ‘0’s e ‘1’s a que corresponde, seja, m27 ou M27…

Trata-se, pois, de inquirir: qual a combinação de ‘0’s e ‘1’s – e, por conseguinte, qual a expressão algébrica –

correspondente a algum mintermo ‘mi’ ou maxtermo ‘Mj’ genérico – ou, vice-versa, qual o índice em ‘mi’ ou ‘Mj’

correspondente à expressão algébrica de um dado mintermo ou maxtermo? E responder a isso sem ter que escrever

a Tabela “toda”!

É isso que se irá ver a seguir.

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 3/12

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 4/12

Sistemas de Numeração / Conversão mi/Mj Expressões Algébricas

Aquando do estabelecimento da convenção relativa ao preenchimento das colunas que representam as entradas

do circuito, vidé 2º Projecto, acentuou-se: cada coluna é a repetição “por-aí-abaixo” de ciclos contendo, cada um,

alguns ‘0’s logo seguidos do mesmo número de ’1’s...

O ciclo da coluna mais à direita, ‘A’, e que é ‘01’, contém 1 ‘0’ (e 1 ‘1’); o da coluna que lhe fica à esquerda,

‘H’, e que é ‘0011’, contém 2 ‘0’s; o da coluna à esquerda desta última, ‘P’, e que é ‘00001111’, contém 4 ‘0’s; e o

da coluna à esquerda desta última, ‘M’, e que é ‘0000000011111111’, contém 8 ‘0’s.

Por comodidade, escreveram-se ao lado esses valores {8, 4, 2, 1}, entre parêntesis, mesmo abaixo de cada

coluna… Esses valores não são quaisquer: são potências-de-2 consecutivas (23, 2

2, 2

1, 2

0); visto de outra maneira,

se se enumerar as sucessivas colunas por {k = 3, 2, 1, 0}, o valor sob cada coluna é, precisamente, 2k.

Convencionando que cada coluna tem um peso – que é o valor abaixo dela –, constata-se o seguinte: o número

de ordem de cada linha (‘0’, ‘1’, ‘2’, até ‘15’) é a soma dos pesos das colunas em que se encontram os ‘1’s. Na

prática, e porquanto tais pesos são potências-de-2, aquele número de ordem vem a ser uma soma de algumas

potências-de-2 (concretamente, as correspondentes às colunas em que a linha assume o valor ‘1’).

Eis alguns exemplos:

– seja a linha onde a combinação das entradas {M, P, H, A} é ‘0001’; somente a coluna ‘A’ exibe um ‘1’; posto

que ela tem peso 1, o resultado de acordo com o algoritmo acima é: 1=20=1;

– seja a linha onde aquela combinação é ‘0010’; somente a coluna ‘H’ exibe um ‘1’; posto que ela tem peso 2, o

resultado do algoritmo acima é: 2=21=2;

– seja a linha onde aquela combinação é ‘0100’; somente a coluna ‘P’ exibe um ‘1’; posto que ela tem peso 4, o

resultado do algoritmo acima é: 4=22=4;

– seja a linha onde aquela combinação é ‘1000’; somente a coluna ‘M’ exibe um ‘1’; posto que ela tem peso 8,

o resultado do algoritmo acima é: 8=23=8;

– seja a linha onde aquela combinação é ‘1100’; existem duas colunas {M e P} com ‘1’; tendo elas pesos 8 e 4,

respectivamente, o resultado do algoritmo acima é: 8+4=23+2

2=12;

– seja enfim a linha onde aquela combinação é ‘1011’; existem três colunas {M, H e A} com ‘1’; tendo elas

pesos 8, 2 e 1, respectivamente, o resultado do algoritmo acima é: 8+2+1=23+2

1+2

0=11.

(Abra-se um parêntesis: ao longo da disciplina “Sistemas Digitais”, é assaz frequente ter que se determinar a

correspondência entre qualquer uma das dezasseis combinações das entradas da Tabela ao lado e o respectivo

número de ordem (ou vice-versa) – pelo que convém que o leitor a saiba fazer mentalmente, num ápice!).

Compreendido o algoritmo para traduzir uma combinação de ‘0’s e ‘1’s no correspondente número de ordem, é

pacífico como fazer o contrário: dado um número de ordem, determinar a correspondente combinação de ‘0’s e

‘1’s. O ponto de partida é o seguinte: um número de ordem (de uma linha) é uma soma de algumas potências-de-2

– pelo que “tudo” se resume a determinar quais as potências-de-2 cuja adição resulta naquele número de ordem.

Seja, como exemplo, a determinação da combinação de ‘0’s e ‘1’s correspondente a 25. Então,

– a maior potência-de-2 não superior a 25 é 16=24; 25 excede 16 em 25-16=9;

– a maior potência-de-2 não superior a 9 é 8=23; 9 excede 8 em 9-8=1;

– a maior potência-de-2 não superior a 1 é 1=20; 1 excede 1 em 1-1=0.

Ou seja: 25 = 16 + 8 + 1 (= 24 + 2

3 + 2

0). De que se deduz: a combinação pretendida terá ‘1’ nas colunas cujos

pesos são {16, 8 e 1} – ou, o que é o mesmo, nas colunas numeradas {4, 3 e 0} (que são os expoentes das

potências-de-2 cuja soma perfaze 25) – e terá ‘0’ nas restantes: ‘11001’. Dela, é trivial escrever a expressão

algébrica do mintermo m25, vidé ao lado.

Seja agora, como exemplo, a determinação da combinação de ‘0’s e ‘1’s correspondente a 45. Procedendo como

no exemplo precedente, deduz-se 45 = 32 + 8 + 4 + 1 = 25 + 2

3 + 2

2 + 2

0. De que se deduz: a combinação

pretendida terá ‘1’ nas colunas de pesos {32, 8, 4 e 1} – ou, o que é o mesmo, nas colunas numeradas 5, 3, 2 e 0

(que são os expoentes das potências-de-2 cuja soma perfaz 45) – e terá ‘0’ nas restantes: ‘101101’. Dela, é trivial

escrever a expressão algébrica do maxtermo M45…

O algoritmo usado é trivial: pouco mais há a fazer que memorizar potências-de-2 e fazer subtracções… Mas

não é lá muito cativante, mormente se o número de ordem for muito grande… Há que investigar outro método…

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 5/12

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 6/12

Sistemas de Numeração / Intermezzo: Como contar?

Recapitulando: alguém precisa de registar uma quantidade, seja “quarenta e cinco”; esta expressão espraia-se

por dezasseis (!) caracteres, pelo que ninguém se admirará do esforço da humanidade no sentido de a traduzir

numa forma compacta… O leitor tê-la-á apreendido no banco da primária: simplesmente ‘45’, que já só envolve

dois dígitos. Ela está conforme ao assim denominado “Sistema de Numeração Decimal” – que consiste numa hábil

escolha entre 10 dígitos, a saber ‘0’, ‘1’, …, ‘9’. O desafio agora é: como escrever aquela mesma quantidade sob a

forma de uma escolha de entre, apenas, 2 dígitos: ‘0’ e ‘1’?

Por mor de curiosidade – que o saber não ocupa lugar –, a resposta irá emergir no seguimento de uma curta

incursão a alguns dos sistemas de numeração euro-asiáticos:

Sistema Unário:

Poderá o leitor imaginar o Fred Flintstone dirigir-se ao pedreiro local para lhe encomendar uma dúzia de

pedras lascadas… Como fará o pedreiro para a registar? Uma praxis verosímil será dispor, ao lado uns dos outros,

uma série de doze palitos (iguais)…

Este sistema é dito de unário – pois recorre a, somente, um símbolo (o palito) – e aditivo: quantidades maiores

volvem-se em adicionar mais palitos… Quiçá ainda restem hoje vestígios deste sistema: aquando do jogo (de

cartas) da sueca, é comum, no início, um dos jogadores traçar, num papel, quatro riscos verticais para simbolizar a

menor pontuação que uma equipa necessita acumular para ganhar… Mas, quando as quantidades em causa são

algo maiores, é claro que o sistema unário se revela ineficiente…

Sistemas M-ários:

A maneira óbvia de compactar a representação de quantidades é substituir conjuntos de palitos por algum outro

símbolo específico: o Sistema passa a suportar-se em vários símbolos. Adiante, revêm-se alguns sistemas assim:

Sistema sumério: são definidos 60 símbolos cuneiformes – para representar as quantidades ‘1’, …, ‘60’ (vidé

ao lado os que representam ‘1’ e ‘10’). Para representar quantidades maiores, justapõem-se alguns deles…

Sistema egípcio (cerca de 1600 aC): são definidos 7 hieróglifos – para representar as quantidades ‘1’, ‘10’,

‘100’, …, ‘1000000’ (vidé ao lado). Para representar outras quantidades, justapõem-se alguns desses símbolos, a

ordem sendo arbitrária (vidé ao lado uma das possíveis representações de ‘218’)…

Sistema ático (Grécia, século III AC): são definidos 6 símbolos – para representar as quantidades ‘1’, ‘5’,

‘10’, ‘100’, ‘1000’ , ‘10000’ (vidé ao lado). Para representar outras quantidades, justapõem-se alguns desses

símbolos, a ordem sendo arbitrária (vidé ao lado duas possíveis representações de ‘210’)…

Sistema romano: são definidos 7 símbolos – para representar as quantidades ‘1’, ‘5’, ‘10’, ‘50’, ‘100’ ,

‘500’, ‘1000’ (vidé ao lado). Para representar outras quantidades, justapõem-se alguns desses símbolos, a ordem

não sendo arbitrária (o leitor pode constatá-lo nas representações de ‘9’ e ‘11’ em relógios cujas horas são

etiquetadas com símbolos romanos: a justaposição de ‘I’ à direita de ‘X’ significa 10+1=11, mas a justaposição de

‘I’ à esquerda de ‘X’ significa 10-1=9)…

Sistema indo-árabe (século VI DC, tendo chegado à Europa no século X): são definidos 10 dígitos – para

representar ‘1’, ‘2’, ‘3’, ‘4’, ‘5’ , ‘6’, ‘7’, ‘8’, ‘9’ , e – novidade, que nenhum dos sistemas precedentes representa a

quantidade zero! – ‘0’. Para representar outras quantidades, justapõem-se alguns dígitos em um número; o Sistema

é aditivo – mas a quantidade que um dígito representa depende da sua posição no seio do número.

Como exemplos, vejam-se os casos de 253 e 532. Constata-se que 253=200+50+3 e 532=500+30+2, ou seja:

– em ‘253’, o ‘5’ representa 50; mas em ‘532’ o ‘5’ representa 500!

– em ‘253’, o ‘3’ representa mesmo 3; mas em ‘532’ o ‘3’ representa 30!

– em ‘253’, o ‘2’ representa 200; mas em ‘532’ o ‘2’ representa mesmo 2!

Estes exemplos ilustram que cada uma das posições dum número tem um peso específico. E desenvolvendo

253=2×100+5×10+3×1=2×102+5×10

1+3×10

0 e 532=5×100+3×10+2×1=5×10

2+3×10

1+2×10

0, ficam claros os

pesos em causa: a posição mais à direita tem peso ‘1’, a que lhe está logo à esquerda tem peso ‘10’, e continuando

para a esquerda, as posições têm pesos que são as sucessivas potências-de-10: ‘1’, ‘10’, ‘100’, ‘1000’…

(Para mais detalhes, sugere-se a consulta da Tese de Mestrado de Fernando Almeida, FCUP/2007)

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 7/12

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 8/12

Sistemas de Numeração / Sistemas de Numeração Posicional

Recapitulando: no Sistema indo-árabe, o valor representado por um número é a soma dos dígitos desse número

ponderados pelas sucessivas potências-de-10. Para um número com n dígitos, isso traduz-se na fórmula 0

01

12

22-n

2-n1-n

1-n 10d10d10d...10d10dValor

Ao facto de os pesos serem potências-de-10 não será alheio o estar o sistema indo-árabe suportado num

alfabeto de 10 dígitos {‘0’, ‘1’, …, ‘9’}. O que naturalmente leva a uma pergunta: e se, em vez de o alfabeto

conter, não 10, mas um outro número, seja b, de dígitos?

Precisamente, designa-se de Sistema de Numeração posicional de base ‘b’ um sistema suportado num alfabeto

de b símbolos com a seguinte propriedade: o valor representado por um número é a soma dos dígitos desse número

ponderados pelos pesos das posições que esses dígitos ocupam no número – pesos esses que são as sucessivas

potências-de-b: 0

01

12

22-n

2-n1-n

1-n bdbdbd...bdbdValor

Ao lado, listam-se as representações dos primeiros 19 inteiros (não-negativos) para quatro sistemas de

numeração posicionais, ditos de decimal, binário, octal e hexadecimal.

Para cada um deles, indica-se a respectiva base (respectivamente: 10, 2, 8 e 16), o nome genérico dos seus

símbolos, o respectivo alfabeto, e alguns pesos (potências-de-b). Por extenso,

– o alfabeto do sistema binário comporta dois símbolos: {‘0’ e ‘1’};

– o alfabeto do sistema octal comporta oito símbolos: {‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’};

– o alfabeto do sistema hexadecimal comporta dezasseis símbolos: {‘0’, …, ‘9’, ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’}, o

que significa: para representar o algarismo dez, usa-se o hexadecimal ‘A’, para representar onze, usa-se ‘B’, etc…

O leitor poderá conferir que a lista de números na bem conhecida base-10 segue o seguinte “algoritmo”:

na coluna mais à direita, inscreve-se, de cima abaixo, os sucessivos dígitos do alfabeto: ‘0’, ‘1’, …, ‘9’;

esse ciclo – de comprimento 10 – é depois repetido por baixo, e novamente repetido…;

na coluna que lhe fica à esquerda, o ciclo tem comprimento 100: nele, ocorrem 10 ‘0’ (omitidos),

seguem-se-lhe 10 ‘1’, etc.;

na coluna que lhe fica à esquerda, o ciclo tem comprimento 1000: nele, ocorrem 100 ‘0’ (omitidos),

seguem-se-lhe 100 ‘1’, etc…

As listas de números nas demais bases seguem o mesmo “algoritmo”:

na coluna mais à direita, inscreve-se, de cima abaixo, os sucessivos símbolos do alfabeto (de b símbolos);

esse ciclo – de comprimento b – é depois repetido por baixo, e novamente repetido ad infinitum…;

na coluna que lhe fica à esquerda, o ciclo tem comprimento b2: nele, ocorrem b ‘0’s (omitidos), seguem-

se-lhe b ‘1’s, etc.;

na coluna que lhe fica à esquerda, o ciclo tem comprimento b3: nele, ocorrem b

2 ‘0’s (omitidos), seguem-

se-lhe b2 ‘1’s, etc…

Assim procedendo, constata-se que uma dada quantidade de objectos – seja dezoito – se representa, naquelas

bases, por, respectivamente, 18(10), 10010(2), 22(8) e 12(16). Note-se que, para não haver ambiguidade acerca da base

de numeração em que se encontra um número, ele é acompanhado duma referência – que vem a ser essa base entre

parêntesis (Ou seja: sem essa referência, desconhece-se a base em que estão escritos aqueles números: 18 poderia

estar na base 9, 10010 poderia estar na base 10, 22 poderia estar na base 3 e 12 poderia estar na base …)

Aqueles números ilustram claramente a fórmula geral acima (fazendo, é claro, as contas na conhecida base 10):

18(10) 1×101+8×10

0 = 10+8 = 18(10);

10010(2) 1×24+1×2

1 = 16+2 = 18(10);

22(8) 2×81+2×8

0 = 16+2 = 18(10);

12(16) 1×161+2×16

0 = 16+2= 18(10).

A terminar: a base 10 é aquela com que o leitor terá aprendido a lidar na primária… Já a base 2 é a que suporta

os Sistemas Digitais (inclusive os modernos computadores) – que, se tem visto, só reconhecem dois símbolos. Ela,

todavia, pois que eventualmente vem a traduzir-se em longas sucessões de ‘0’s e ‘1’s, é por demais incómoda para

os seres humanos – pelo que a praxis comum é compactá-la nas bases 8 e 16. É o que se verá a seguir…

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 9/12

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 10/12

Sistemas de Numeração / Conversão entre Bases

Os Sistemas de Numeração mais usados no contexto de Sistemas Digitais são os de base 10, 2, 8 e 16. E natural

é que se ponha a seguinte pergunta: dado um número que representa alguma quantidade numa dessas bases, como

obter o número equivalente (isto é: que representa essa mesma quantidade) em alguma outra dessas bases?

A este respeito, é trivial passar/converter da base 2 para as bases 8 ou 16, e vice-versa: números nestas duas

bases podem entender-se como representações comprimidas da representação na base 2. Vejam-se exemplos:

– Compressão de Binário em Octal ou Hexadecimal:

– seja um número escrito na base 2: 1011100(2); para o converter para a base 8, procede-se mentalmente à

repartição dos seus dígitos em grupos-de-3 (recorde: 8=23), da direita para a esquerda (e, se preciso, antepondo

‘0’s à esquerda); conclui-se substituindo cada trio de bits pelo seu equivalente na base 8 (vidé ao lado); – seja um outro número na base 2: 10110100110(2); para o converter para a base 16, procede-se mentalmente

à repartição dos seus dígitos em grupos-de-4 (recorde: 16=24), da direita para a esquerda (e, se preciso, antepondo

‘0’s à esquerda); conclui-se substituindo cada quarteto de bits pelo seu equivalente na base 16 (vidé ao lado): – Expansão de Octal ou Hexadecimal em Binário:

– seja um número escrito na base 8: 162(8); para o converter para a base 2, substitui-se cada dígito pelo trio

de bits que o representa na base 2 (e removem-se eventuais ‘0’s que venham a ocorrer à esquerda, vidé ao lado): – seja um número escrito na base 16: C03F(16); para o converter para a base 2, substitui-se cada símbolo pelo

quarteto de bits que o representa na base 2 (e removem-se eventuais ‘0’s que venham a ocorrer à esquerda): – Conversão de Octal em Hexadecimal ou vice-versa:

– como corolário: para converter um número escrito na base 8 para a base 16 (ou vice-versa), procede-se

primeiramente à sua expansão, para a base 2, e logo depois à sua compressão, para a outra base.

A passagem/conversão de qualquer base b para a base 10 logra-se como já se ilustrou: somam-se os dígitos

ponderados pelos pesos (potências-da-base b) das posições que ocupam no número… Isto é válido mesmo quando

o número tem parte “decimal”, vidé ao lado a conversão do número 351,3(7). A fórmula a aplicar é, como se intui:

...2-

2-1-

1-0

01

12

22-n

2-n1-n

1-n bdbdbdbdbd...bdbdValor

A passagem/conversão inversa – da base 10 para qualquer outra –, e no caso geral de o número dado ter partes

inteira e decimal, envolve dois algoritmos (cuja justificação é trivial); seja dado o número 2012,9765625(10)…

– para a parte inteira, 2012(10), recorre-se a divisões sucessivas pela nova base. Como exemplo, seja o caso

de se pretender convertê-lo para a base 8; faz-se o seguinte (vidé ao lado):

– divide-se 2012 por 8 – resultando o quociente 251 e o resto 4;

– divide-se esse quociente, 251, por 8 – resultando o quociente 31 e o resto 3;

– divide-se esse quociente, 31, por 8 – resultando o quociente 3 e o resto 7.

O valor representado por 2012(10) representa-se, na base 8, pelo último quociente seguido dos sucessivos restos

(pela ordem inversa em que foram sendo logrados): 3734(8).

– se se quiser converter 2012(10) para a base 16, recorre-se a divisões sucessivas – por 16! (vidé ao lado);

– se se quiser converter 2012(10) para a base 2, também se recorre a divisões sucessivas – por 2! – ou, mais

rápido, expande-se uma das representações a que se chegou (nas bases 8 ou 16) –, chegando-se a 11111011100(2);

– para a parte decimal, 0,9765625(10), recorre-se a multiplicações sucessivas pela nova base. Como exemplo,

seja o caso de se pretender convertê-lo para base 8; faz-se o seguinte (vidé ao lado):

– multiplica-se 0,9765625 por 8 – resultando uma parte inteira 7 e uma parte decimal 0,8125;

– multiplica-se essa parte decimal 0,8125 por 8 – resultando uma parte inteira 6 e uma parte decimal 0,5;

– multiplica-se essa parte decimal 0,5 por 8 – resultando uma parte inteira 4 e uma parte decimal 0.

O valor representado por 0,9765625(10) representa-se, na base 8, por um número cuja parte inteira é 0 e cuja

parte decimal vem a ser as sucessivas partes inteiras (pela ordem em que foram sendo logradas): 0,764(8) (Neste exemplo, uma multiplicação volveu-se numa parte decimal nula. Nem sempre isso sucede. Suponha-se que

0,9765625(10) é o valor exacto da intensidade de uma corrente… mas o amperímetro indica 0,97: há um erro – que advém de a

sua precisão ser 0,01=10-2

. As sucessivas multiplicações volvem-se num número interminável, 0,97(10)→0,76050…(8)! Donde a

pergunta: quando se deve parar? A precisão implícita no valor encontrado, 0,76050(8), é 8-5 0,00003; isto é, a mudança de

base melhorou a precisão – o que não pode ser: tem que se parar antes que a precisão advenha inferior a 0,01! Ora 8-1

=0,125,

8-2

=0,015 e 8-3

=0,0019… Ou seja: deve parar-se de multiplicar já quando se tiverem duas casas “decimais”: 0,76(8))

Deixa-se, é claro, ao leitor a justificação dos algoritmos acima – que ela é trivial a partir da fórmula acima…

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 11/12

Prof V Vargas, IST Sistemas de Numeração 26/11/13, Pg 12/12

Sistemas de Numeração / Já estamos prontos a resolver o problema

Recorde-se a questão enunciada na abertura desta sessão: qual a combinação de ‘0’s e ‘1’s – e, por conseguinte,

qual a expressão algébrica – correspondente a algum mintermo ‘mi’ ou maxtermo ‘Mj’ genérico? Ou, vice-versa,

qual o índice em ‘mi’ ou ‘Mj’ correspondente à expressão algébrica de um dado mintermo ou maxtermo? E

responder a isso sem ter que escrevinhar a Tabela de Verdade “toda”!

Neste momento, já se coleccionaram os conhecimentos necessários para uma resposta justificada. Com efeito,

ao leitor não terá certamente escapado a similaridade dos resultados logrados:

– pela convenção com que se preenchem as colunas à esquerda de uma Tabela de Verdade (vidé ao lado);

– pela fórmula a que obedece a Lista dos primeiros números inteiros (não-negativos) no sistema binário.

Em ambos – na Tabela e na Lista: a coluna mais à direita é a repetição do ciclo ‘01’; a coluna à sua esquerda é a

repetição do ciclo ‘0011’; a coluna à sua esquerda é a repetição do ciclo ‘00001111’; e a coluna à sua esquerda é a

repetição do ciclo ‘0000000011111111’.

Há que não olvidar, porém, o seguinte: no sistema binário, os ‘0’s e ‘1’s são dígitos numéricos, mas na Tabela

são bits, isto é, símbolos booleanos – que em vez de ‘0’ e ‘1’ bem poderiam ser ‘F’ e ‘V’ ou ‘I’ e ‘A’…

Mas fica nítida a vantagem de, em vez de se recorrer a tais ‘F’ e ‘V’, se preferir usar ‘0’s e ‘1’s: se se

interpretarem os ‘0’s e ‘1’s das colunas à esquerda da Tabela como dígitos numéricos, então as sucessivas linhas

(combinações das variáveis) vêm a ser as representações, em base 2, do respectivo número de ordem: 0, 1, 2...

(vidé ao lado). E, pelo exposto atrás, esse número de ordem acaba por ser a soma dos seus ‘1’s ponderados pelas

sucessivas potências-de-2 – que, da direita para a esquerda, são ‘1’, ‘2’, ‘4’, ‘8’,…

Seguem-se exemplos da questão acima, ambos pressupondo uma função de 6 variáveis {A, B, C, D, E, F}:

1. O primeiro versa ‘M45’: qual a sua expressão algébrica (sem escrever a Tabela de Verdade “toda”…)?

– O primeiro passo é converter 45(10) para a base 2 – o que advém célere pela sua conversão prévia para a base 8

(mediante divisões sucessivas por 8), e expandindo depois (para a base 2) o resultado obtido (vidé ao lado);

– Com isso, logra-se 101101(2). Daqui, é trivial deduzir a correspondente expressão algébrica: porquanto ‘M’

denota um maxtermo, será uma soma de todas as variáveis; nela, recorde-se, cada variável aparece na forma

normal ou complementar, consoante respectivamente essa variável for ‘0’ ou ‘1’ naquele número ‘101101’… O

resultado de tais considerandos será FEDCBA .

2. O segundo exemplo versa a questão contrária: qual a representação compacta de FEDCAB ?

– O primeiro passo é escrever a combinação de variáveis que corresponde àquela expressão. Porquanto ela é

um produto de todas as variáveis, trata-se um mintermo; neste, recorde-se, cada variável aparece na forma normal

ou complementar, consoante respectivamente essa variável for ‘1’ ou ‘0’… A combinação de variáveis será então

‘110101’.

– Interpretando-a como um número na base 2, 110101(2), há agora que convertê-lo para a base 10. O mais célere

será, por compactação, convertê-lo previamente para a base 8 – e, logo depois, aplicando a costumeira fórmula

(soma de potências-de-8), lograr o correspondente número na base 10; o resultado é 53. De que se conclui que a

expressão dada é o mintermo ‘m53’.

(Poderá parecer algo forçada a questão que motivou esta sessão sobre Sistemas de Numeração… – mas não o é:

nas sessões adiante, ir-se-á proceder (e justificar-se-á porquê) à violação deliberada da convenção que desde o

início presidiu à elaboração as Tabelas de Verdade: o preenchimento das colunas que representam as entradas do

circuito são a repetição “por-aí-abaixo” de ciclos contendo, cada um, alguns ‘0’s logo seguidos do mesmo número

de ’1’s... Ao cometer-se essa violação, o resultado é virem a ser outras as posições relativas das linhas da Tabela –

e natural é perguntar: aonde vai ‘parar’ a linha ‘tal’? É precisamente essa pergunta que motivou este intermezzo)