Lógica Digital/Sistemas numéricos

Desde que o ser humano necessitou contabilizar os objetos de seu cotidiano e realizar operações sobre os valores obtidos, ele desenvolveu sistemas numéricos diversos. Entre os diversos sistemas desenvolvidos em todas as épocas, o mais proeminente em nossa sociedade moderna é o sistema decimal, ou seja, o sistema formado por digítos entre 0 e 9, contabilizados de 10 em 10, e cuja combinação pode constituir todos os números possíveis. Porém existem outros sistemas numéricos, utilizados para diversos fins.

Sistemas numéricos posicionais

editar

Sistema numérico posicional é o nome dado a propriedade de um número variar o seu valor dependendo da posição em que ocupa dentro de uma ordem de valores. Como exemplo, podemos considerar o número 101. O número 1 não representa 1, mas sua posição representa 100 e é diferente do último 1 que representa apenas 1 unidade. Assim podemos considerar que no sistema decimal o valor de cada símbolo depende de sua posição. Ainda que aparentemente isto pareça trivial, ver-se-á que este conceito é de extrema importancia em outros sistemas numéricos posicionais.

Base de um sistema numérico

editar

A base de um sistema numérico é a quantidade de algarismos utilizados para sua representação. Em nossa atual sociedade a base mais utilizada é a base 10 (decimal) onde contamos com 10 algarismos para representação numérica - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Porém existem outras bases de numeração como a base 12, base 60, base 2 (binária) e base 16 (hexadecimal). Temos que uma base b possuirá b algarismos, variando entre 0 e (b-1).

O sistema binário é um sistema de numeração posicional em que todas as quantidades se representam utilizando como base o número dois, com o que se dispõe das cifras: zero e um (0 e 1).

Os computadores digitais trabalham internamente com dois níveis de tensão, pelo que o seu sistema de numeração natural é o sistema binário (aceso, apagado). Com efeito, num sistema simples como este é possível simplificar o cálculo, com o auxílio da lógica booleana. Em computação, chama-se um dígito binário (0 ou 1) de bit, que vem do inglês Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). Um agrupamento de 4 bits é chamado de nibble.

O sistema binário é base para a Álgebra booleana (de George Boole - matemático inglês), que permite fazer operações lógicas e aritméticas usando-se apenas dois dígitos ou dois estados (sim e não, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado). Toda eletrônica digital e computação está baseada nesse sistema binário e na lógica de Boole, que permite representar por circuitos eletrônicos digitais (portas lógicas) os números, caracteres, realizar operações lógicas e aritméticas. Os programas de computadores são codificados sob forma binária e armazenados nas mídias (memórias, discos, etc) sob esse formato.

Histórico do sistema binário

editar

O matemático indiano Pingala apresentou a primeira descrição conhecida de um sistema numérico binário no século III aC.

Um conjunto de 8 trigramas e 64 hexagramas, análogos a números binários com precisão de 3 e 6 bits, foram utilizados pelos antigos chineses no texto clássico I Ching. Conjuntos similares de combinações binárias foram utilizados em sistemas africanos de adivinhação tais como o Ifá, bem como na Geomancia do medievo ocidental.

Uma sistematização binária dos hexagramas do I Ching, representando a sequência decimal de 0 a 63, e um método para gerar tais sequências, foi desenvolvida pelo filósofo e estudioso Shao Yong no século XI. Entretanto, não há evidências que Shao Wong chegou à aritmética binária.

O sistema numérico binário moderno foi documentado de forma abrangente por Gottfried Leibniz no século XVIII em seu artigo "Explication de l'Arithmétique Binaire". O sistema de Leibniz utilizou 0 e 1, tal como o sistema numérico binário corrente nos dias de hoje.

Em 1854, o matemático britânico George Boole publicou um artigo fundamental detalhando um sistema lógico que se tornaria conhecido como Álgebra Booleana. Seu sistema lógico tornou-se essencial para o desenvolvimento do sistema binário, particularmente sua aplicação a circuitos eletrônicos.

Em 1937, Claude Shannon produziu sua tese no MIT que implementava Álgebra Booleana e aritmética binária utilizando circuitos elétricos pela primeira vez na história. Intitulado "A Symbolic Analysis of Relay and Switching Circuits", a tese de Shannon praticamente fundou o projeto de circuitos digitais.

Operações com binários

editar
Binários a decimais
editar

Dado um número N, binário, para expressá-lo em decimal, deve-se escrever cada número que o compõe (bit), multiplicado pela base do sistema (base = 2), elevado à posição que ocupa. Uma posição à esquerda da vírgula representa uma potência positiva e à direita uma potência negativa. A soma de cada multiplicação de cada dígito binário pelo valor das potências resulta no número real representado. Exemplo:

1011(binário)

1 × 23 + 0 × 22 + 1 × 21 + 1 × 20 = 11

Portanto, 1011 é 11 em decimal

Decimais em binários

editar
Decimais inteiros em binários
editar

Dado um número decimal inteiro, para convertê-lo em binário, basta dividi-lo sucessivamente por 2, anotando o resto da divisão inteira:

12(dec) -> bin

12 / 2 = 6 + 0
06 / 2 = 3 + 0
03 / 2 = 1 + 1
01 / 2 = 0 + 1

12(dec) = 1100(bin)

Observe que os números devem ser lidos de baixo para cima: 1100 é 12 em decimal.

Existe um método muito simples para converter binário em decimal, e vice-versa.

 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
    0     0    0    0   1   0   1   0    = 10  (2+8=10)
    0     0    0    1   1   0   0   0    = 24 (8+16=24)
    1     1    0    0   0   0   0   0    = 192 (64+128=192)
    1     0    1    1   1   0   1   0    = 186 (2+8+16+32+128=186)
Decimais fracionários em binários
editar

Exemplo I
0.562510

Parte inteira = 0 10 = 02
Parte fracionária = 0.562510
Multiplica-se a parte fracionária por 2 sucessivamente, até que ela seja igual a zero ou cheguemos na precisão desejada.

fração x 2 =  vai-um + fração seguinte
0.5625 x 2 =   1     + 0.1250
0.1250 x 2 =   0     + 0.2500
0.2500 x 2 =   0     + 0.5000
0.5000 x 2 =   1     + 0.0000 <-- nesta linha a fração zerou, finalizamos a conversão

Anotando a seqüência de vai-um (carry) na ordem de cima para baixo, temos: 1001
Portanto, 0.562510 = 0.10012

No entanto, é mais comum nunca zerarmos a fração seguinte da multiplicação.
Neste caso, devemos parar as multiplicações quando atingirmos uma certa precisão desejada.

Exemplo II
67.57510

Parte inteira = 6710 = 10000112
Parte fracionária = 0.5752

fração x 2 =  vai-um + fração seguinte
0.5750 x 2 =   1     + 0.1500
0.1500 x 2 =   0     + 0.3000
0.3000 x 2 =   0     + 0.6000 <--- esta fração e suas subseqüentes serão repetidas em breve.
0.6000 x 2 =   1     + 0.2000
0.2000 x 2 =   0     + 0.4000
0.4000 x 2 =   0     + 0.8000
0.8000 x 2 =   1     + 0.6000 <--- a partir daqui repetimos a fração 0.6000 e suas subseqüentes
0.6000 x 2 =   1     + 0.2000

Ou seja, entramos em um ciclo sem fim. Escolhemos uma precisão e finalizamos o processo quando esta precisão for atingida, então na ordem de cima para baixo, temos: 100100112.

Sistema Octal é um sistema de numeração cuja base é 8, ou seja, utiliza 8 símbolos para a representação de quantidade. No ocidente, estes símbolos são os algarismos arábicos: 0 1 2 3 4 5 6 7

O octal foi muito utilizado em informática como uma alternativa mais compacta ao binário na programação em linguagem de máquina. Hoje, o sistema hexadecimal é mais utilizado como alternativa ao binário.

Este sistema também é um sistema posicional e a posição de seus algarismos determinada em relação à vírgula decimal. Caso isso não ocorra, supõe-se implicitamente colocada à direita do número. A aritmética desse sistema é semelhante a dos sistemas decimal e binário, o motivo pelo qual não será apresentada.

Exemplo: - Qual o número decimal representado pelo número octal 4701? Utilizar o TFN. 4 x 8³ + 7 x 8² + 0 x 8¹ + 1 x 8° = = 2048 + 448 + 0 + 1 = 2497

Conversões de um sistema para outro

editar
Conversão Decimal – Octal
editar

Método de multiplicações sucessivas por 8 É utilizado para converter uma fração decimal para o sistema octal. Multiplica-se a fração decimal por 8, obtendo-se na parte inteira do resultado o primeiro dígito da fração octal resultante. O processo é repetido sucessivamente com a parte fracionária do resultado para obter os dígitos seguintes e termina quando a parte fracionária é nula ou inferior à medida de erro especificada. Exemplo: Converter a fração decimal 0.140625 em octal. 0.140625 x 8 = 1.125

0.125 x 8 = 1.0 Combinamos os dois métodos anteriores podemos converter para octal números decimais com parte inteira e fracionária.

Método de subtrair potências de 8
editar

Outro método de conversão de números decimais para o sistema octal que serve para números com partes inteiras e fracionária é o de subtrair potências de 8. é semelhante ao estudado para a conversão decimal – binário e para a sua aplicação é necessária uma tabela de potências de 8.

Conversão Octal – Decimal
editar

Existem vários métodos, sendo mais comumente utilizado o proveniente do TFN, em que se faz a conversão de forma direta através da fórmula. Exemplo: Converter o número octal 764 para o sistema decimal 764 (8) = 7 x 8² + 6 x 8¹ + 4 x 8° = 448 + 48 + 4 = 500 (10)

Conversão Octal – Binário
editar

Quando existir necessidade de converter números octais em binários, deve-se separar cada dígito do número octal substituí-lo pelo seu valor correspondente de binário. Exemplo: Converter o número octal 1572 em binário.

Logo, 1 5 7 2 = 001 101 111 010

Conversão Binário – Octal
editar

Para converter um número binário em octal, executa-se o processo inverso ao anterior. Agrupam-se os dígitos binários de 3 em 3 do ponto decimal para a esquerda e para a direita, substituindo-se cada trio de dígitos binários pelo equivalente dígito octal.

Por exemplo, a conversão do número binário 1010111100 em octal:

001 010 111 100 1 2 7 4

Assim, tem-se 1010111100bin = 1274oct

Conversão Octal – Hexadecimal
editar

Para esta conversão é necessário executar um passo intermediário utilizando o sistema binário. Primeiramente converte-se o número octal em binário e depois converte-se o binário para o sistema hexadecimal, agrupando-se os dígitos de 4 em 4 e fazendo cada grupo corresponder a um dígito hexadecimal.

Por, exemplo, a conversão o número octal 1057 em hexadecimal:

Passagem ao binário: 1 0 5 7 001 000 101 111

Passagem ao hexadecimal: 0010 0010 1111 2 2 F

Assim, tem-se 1057oct = 22Fhex

Conversão Hexadecimal – Octal
editar

Esta conversão, assim com a anterior, exige um passo intermediário em que se utiliza o sistema binário. Converte-se o número hexadecimal em binário e este em octal. Exemplo: Converter o número hexadecimal 1F4 em octal.

1 F 4 0001 1111 0100

Conversão para octal

0 7 6 4 000 111 110 100

O sistema hexadecimal é um sistema de numeração posicional que representa os números em base 16 —portanto empregando 16 símbolos—.

Está vinculado à informática, pois os computadores costumam utilizar o byte ou octeto como unidade básica de memória; e, devido a um byte representar   valores possíveis, e isto poder representar-se como  , o que, segundo o teorema geral da numeração posicional, equivale ao número em base 16  , dois dígitos hexadecimais correspondem exactamente —permitem representar a mesma linha de inteiros— a um byte.

Isto fá-lo muito útil para a visualização de vertidos de memória já que permite saber de jeito singelo o valor de cada byte da memória.

Devido ao sistema decimal geralmente usado para a numeração apenas dispor de dez símbolos, deve-se incluir seis letras adicionais para completar o sistema. O conjunto de símbolos fica, portanto, assim:

 

Ter-se-á de notar que  ,   e assim sucessivamente. Também são usadas variedades com letras minúsculas em vez de maiúsculas.

Exemplo

editar

Ver-se-á um exemplo numérico para obter o valor duma representação hexadecimal: 3E0,A (16) = 3×162 + E×161 + 0×160 + A×16-1 = 3×256 + 14×16 + 0×1 + 10×0,0625 = 992,625

Tabela de conversão entre decimal, binário e hexadecimal

editar
Decimal Binário Hexadecimal
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

Fracções

editar

As fracções, no seu desenvolvimento hexadecimal, não são exactas a menos que o denominador seja potência de 2. Contudo, os períodos não costumam ser muito complicados.

1/2 = 0,8
1/3 = 0,55...
1/4 = 0,4
1/5 = 0,33...
1/6 = 0,2AA...
1/7 = 0,249249...
1/8 = 0,2
1/9 = 0,1C1C...
1/A = 0,199...
1/B =
1/C = 0,155...
1/D =
1/E = 0,1249249...
1/F = 0,11...

Tabela de multiplicação

editar
  1 2 3 4 5 6 7 8 9 A B C D E F 10
1 1 2 3 4 5 6 7 8 9 A B C D E F 10
2 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E 20
3 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D 30
4 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40
5 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 50
6 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 60
7 7 E 15 1C 23 2A 31 38 3F 46 4E 54 5D 62 69 70
8 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78 80
9 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90
A A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 A0
B B 16 21 2C 37 42 4E 58 63 6E 79 84 8F 9A A5 B0
C C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 C0
D D 1A 27 34 41 4E 5D 68 75 82 8F 9C A9 B6 C3 D0
E E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 E0
F F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 F0
10 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 100

Busca de números primos

editar

A busca de números primos na base 16 é menos eficiente que em base 10. Um número primo pode acabar em qualquer destas oito cifras: 1, 3, 5, 7, 9, B, D ou F.

A única excepção é o número primo 2.

Resumo

editar
  • Desde que o ser humano necessitou contabilizar os objetos de seu cotidiano e realizar operações sobre os valores obtidos, ele desenvolveu sistemas numéricos diversos. Entre os diversos sistemas desenvolvidos em todas as épocas, o mais proeminente em nossa sociedade moderna é o sistema decimal, ou seja, o sistema formado por digítos entre 0 e 9, contabilizados de 10 em 10, e cuja combinação pode constituir todos os números possíveis. Porém existem outros sistemas numéricos, utilizados para diversos fins.
  • Sistema numérico posicional é o nome dado a um sistema onde os números tem a propriedade variar o seu valor dependendo da posição em que ocupa dentro de uma ordem de valores. Como exemplo, podemos considerar o número 101. O número 1 não representa 1, mas sua posição representa 100 e é diferente do último 1 que representa apenas 1 unidade.
  • A base de um sistema numérico é a quantidade de algarismos utilizados para sua representação. Em nossa atual sociedade a base mais utilizada é a base 10 (decimal) onde contamos com 10 algarismos para representação numérica - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Porém existem outras bases de numeração como a base 12, base 60, base 2 (binária) e base 16 (hexadecimal).
  • O sistema binário é um sistema de numeração posicional em que todas as quantidades se representam utilizando como base o número dois, com o que se dispõe das cifras: zero e um (0 e 1).
  • Sistema Octal é um sistema de numeração cuja base é 8, ou seja, utiliza 8 símbolos para a representação de quantidade. No ocidente, estes símbolos são os algarismos arábicos: 0 1 2 3 4 5 6 7

Exercícios

editar

Bibliografia e referências externas

editar
  Esta página é somente um esboço. Ampliando-a você ajudará a melhorar a Wikiversidade.