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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]Binários a decimais
[editar | editar código-fonte]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 | editar código-fonte]Decimais inteiros em binários
[editar | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]Conversão Decimal – Octal
[editar | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]- 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 | editar código-fonte]Bibliografia e referências externas
[editar | editar código-fonte]
|