• Aucun résultat trouvé

Annexe : impl´ ementation en C

Dans le document Th´eoriedesgraphes Facult´edessciences (Page 145-167)

De acordo com Glaser (1971), um sistema de numeração é um sistema de representação de números. Existem diversos conjuntos de elementos que

podem servir de base para que essa representação possa ocorrer e de forma única.

a) Sistemas de numeração standard

Os sistemas de numeração são usualmente designados por sistemas de

numeração standard se seguem a estrutura do sistema indo-árabe que habitual-

mente utilizamos, atribuindo o papel especial do número 10 a outro número in- teiro maior do que 1.

Assim, o autor indica que um sistema de numeração standard é caracte- rizado por ter um determinado número, digamos 7, de símbolos básicos, desig- nados por dígitos. Ao número 7 dá-se o nome de base do sistema de numeração. Esses dígitos podem corresponder a algarismos ou a outros símbolos, quando a base 7 é um número inteiro maior que nove. Por exemplo: se a base for 2 (base binária), os dígitos são 0 e 1; se a base for 3 (base ternária), os dígitos são 0, 1 e 2; se a base for 8 (base octal), os dígitos são 0, 1, 2, 3, 4, 5, 6 e 7; na base 10 (base decimal), os dígitos são 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. No caso de uma base superior a 9, como a base hexadecimal (base 16), os dígitos são os dez algaris- mos, de 0 a 9, aos quais se acrescentam seis letras, de A a F.

Representando por 89, 89:;, … , 8= um conjunto de ( + 1 dígitos e 7 um número inteiro maior do que 1, pode ser escrita, para cada número inteiro ?, uma sequência que represente a sua forma expandida (ou forma polinomial):

? = 8979 + 8

9:;79:;+ ⋯ + 8=7=

E logo pode escrever-se a representação de ? na base 7:

? = (8989:;… 8=)(C)

Nesta representação, cada um dos dígitos 89, 89:;, … , 8= tem um valor posicional associado à potência de base 7 do qual é coeficiente. É conveniente que a base que está a ser utilizada seja indicada no final de cada sequência numérica, principalmente se se estiverem a utilizar representações de números em bases distintas.

O sistema de numeração habitualmente utilizado, de base 10, denomina- se por sistema de numeração decimal. Através deste sistema conseguimos re- presentar qualquer número inteiro não negativo. Além disso, para representar números negativos recorremos ao sinal “menos“, antes de cada sequência nu- mérica e para representar dízimas finitas e infinitas recorremos a potências de 10 de expoente negativo.

Por exemplo:

−765123,489 =

= −(7 × 10G+ 6 × 10H+ 5 × 10I + 1 × 10J+ 2 × 10;+ 3 × 10=+ 4 × 10:;+ +8 × 10:J+ 9 × 10:I)

Na área da computação, por exemplo, o sistema de numeração binário é o mais utilizado desde o aparecimento dos primeiros computadores. Neste sis- tema de base 2, os dígitos 0 e 1 desempenham um papel de extrema importância porque podem representar os estados Ligado/Desligado. As bases octal e hexa- decimal são, também, muito utilizadas neste domínio.

Para converter um número inteiro não negativo escrito na base decimal para uma certa base 7, basta efetuar divisões inteiras sucessivas desse número e de cada um dos quocientes por 7 até que o último quociente seja zero e anotar os restos ordenados do fim para o princípio.

Por exemplo, para converter o número 29 em base decimal para uma base binária:

Divisão Quociente (K) Resto (L) M = N × K + L

29 ÷ 2 14 1 (5.º algarismo) 29 = 2 × 14 + 1 14 ÷ 2 7 0 (4.º algarismo) 14 = 2 × 7 + 0 7 ÷ 2 3 1 (3.º algarismo) 7 = 2 × 3 + 1 3 ÷ 2 1 1 (2.º algarismo) 3 = 2 × 1 + 1 1 ÷ 2 0 1 (1.º algarismo) 1 = 2 × 0 + 1 29 = (11101)(J) porque 29 = 1 × 2H+ 1 × 2I+ 1 × 2J+ 0 × 2;+ 1 × 2= = 16 + 8 + 4 + 1 Figura 2 – Representação do número 29 em base binária

Para converter um número escrito na base binária em base decimal basta escrever a forma expandida do número correspondente e calcular o valor da ex- pressão numérica.

b) Sistemas de numeração não standard – o caso da base negabinária

Outros sistemas de numeração, ditos sistemas de numeração não stan-

dard, podem ter como bases números inteiros negativos, números complexos ou

até mesmo números fracionários.

Os sistemas de numeração de base negativa têm como base um número inteiro negativo P e permitem representar qualquer número inteiro, sem usar o sinal “menos” na sequência de dígitos. Para isso, basta efetuar divisões inteiras sucessivas desse número e de cada um dos quocientes por P, até que o último quociente seja nulo e anotar os restos ordenados do fim para o princípio.

Qualquer divisão inteira verifica a igualdade fundamental: Q = R × S + T, sendo Q, R, S e T números inteiros, com 0 ≤ T < |R| e R ≠ 0. Quando o divi- dendo e o divisor são números inteiros positivos, a divisão é simples e rotineira. Em seguida, mostra-se como se pode proceder quando pelo menos um destes dois números é negativo:

• divisão inteira de um número inteiro negativo por um inteiro posi- tivo: por exemplo, se pretendermos dividir −20 por 5, o quociente será −4 e o resto 0, uma vez que −20 = 5 × (−4) + 0; de igual modo, em −8 ÷ 5 o quociente é −2 e o resto 2, uma vez que −8 = 5 × (−2) + 2. Os restos da divisão inteira por 5 podem ser 0, 1, 2, 3 ou 4;

• divisão inteira de um número inteiro positivo por um inteiro nega- tivo: por exemplo, 12 ÷ (−4) tem quociente −3 e resto 0 porque 12 = (−4) × (−3) + 0; a divisão de 15 por (−4) tem quociente −3 e resto 3 porque 15 = (−4) × (−3) + 3. Os restos da divisão inteira por −4 podem ser 0, 1, 2 ou 3;

• divisão inteira de um número inteiro negativo por outro inteiro ne- gativo: por exemplo −3 ÷ (−3) tem quociente 1 e resto 0 porque −3 = (−3) × 1 + 0; do mesmo modo, −1 ÷ (−3) tem quociente 1

e resto 2 porque −1 = (−3) × 1 + 2. Os restos da divisão inteira por −3 podem ser 0, 1 ou 2.

Em qualquer dos casos, os restos são sempre números inteiros não ne- gativos e inferiores ao valor absoluto do divisor.

Iremos agora descrever como se podem representar números inteiros no sistema de numeração de base −2 (sistema negabinário). Por exemplo, pode- mos escrever o número 12 efetuando divisões sucessivas por −2, com restos inteiros e não negativos, tal como se pode observar na figura seguinte:

Divisão Quociente (K) Resto (L) M = (−N) × K + L

12 ÷ (−2) −6 0 (5.º algarismo) 12 = (−2) × (−6) + 0 −6 ÷ (−2) 3 0 (4.º algarismo) −6 = (−2) × 3 + 0 3 ÷ (−2) −1 1 (3.º algarismo) 3 = (−2) × (−1) + 1 −1 ÷ (−2) 1 1 (2.º algarismo) −1 = (−2) × 1 + 1 1 ÷ (−2) 0 1 (1.º algarismo) 1 = (−2) × 0 + 1 12 = (11100)(:J) porque 12 = 1 × (−2)H+ 1 × (−2)I+ 1 × (−2)J + 0 × (−2);+ 0 × (−2)= = = (+16) + (−8) + (+4)

Figura 3 – Representação do número 12 em base negabinária

Analogamente, podemos escrever um número inteiro negativo como −30 em base negabinária da seguinte forma:

Divisão Quociente (K) Resto (L) M = (−N) × K + L

−30 ÷ (−2) 15 0 (6.º algarismo) −30 = (−2) × 15 + 0 15 ÷ (−2) −7 1 (5.º algarismo) 15 = (−2) × (−7) + 1 −7 ÷ (−2) 4 1 (4.º algarismo) −7 = (−2) × 4 + 1 4 ÷ (−2) −2 0 (3.º algarismo) 4 = (−2) × (−2) + 0 −2 ÷ (−2) +1 0 (2.º algarismo) −2 = (−2) × 1 + 0 1 ÷ (−2) 0 1 (1.º algarismo) 1 = (−2) × 0 + 1

−30 = (100110)(:J) porque

−30 = 1 × (−2)G+ 0 × (−2)H+ 0 × (−2)I+ 1 × (−2)J+ 1 × (−2);+ 0 × (−2)= = = (−32) + (+4) + (−2)

Figura 4 – Representação do número −30 em base negabinária

Tal como sucede em todos os sistemas de numeração standard, o zero pode ser representado em base negabinária por um zero. Note-se que, em base negabinária, os números negativos têm um número par de dígitos enquanto os números positivos têm um número ímpar de dígitos (Gardner, 2014). Na figura seguinte, podemos observar a representação de números inteiros negativos en- tre -13 e 13 (em base decimal) nas bases binária e negabinária:

Base decimal Base binária Base negabinária

... ... ... -13 −1101 110111 -12 −1100 110100 -11 −1011 110101 -10 −1010 1010 -9 −1001 1011 -8 −1000 1000 -7 −111 1001 -6 −110 1110 -5 −101 1111 -4 −100 1100 -3 −11 1101 -2 −10 10 -1 −1 11 0 0 0 1 1 1 2 10 110 3 11 111 4 100 100

5 101 101 6 110 11010 7 111 11011 8 1000 11000 9 1001 11001 10 1010 11110 11 1011 11111 12 1100 11100 13 1101 11101 ... ... ...

Figura 5 – Representação de números inteiros em base binária e negabinária A conversão noutros sistemas de numeração de base negativa, como a base negaternária (base −3) ou a base negadecimal (base −10), funciona de forma idêntica à conversão em base negabinária.

Em todos os sistemas de numeração mencionados até aqui neste capí- tulo, o valor posicional de cada dígito está associado a potências consecutivas de uma certa base P, que constituem os termos de uma progressão geométrica, como acontece na base negabinária: P=; P;; PJ; PI; PH;....

No entanto, existem outros sistemas de numeração em que os valores correspondentes à posição de cada dígito não são um múltiplo do valor corres- pondente ao dígito à sua direita. É o que sucede quando tomamos, por exemplo, os números de Fibonacci como base do sistema de numeração. Esta sequência numérica e a sua possível utilização como suporte para a escrita de números inteiros constituem o principal tema abordado na próxima secção.

Dans le document Th´eoriedesgraphes Facult´edessciences (Page 145-167)

Documents relatifs