Você está na página 1de 21

MATEMÁTICA

COMPUTACIONAL
AULA 1

Prof. Luiz Gonzaga de Paulo


CONVERSA INICIAL
A história dos números faz parte da história da escrita, e decorre da
necessidade de contar, de expressar quantidades, e posteriormente, de controlar
e fazer negócios. Uma boa oportunidade para conhecer um pouco dessa história
é assistir ao vídeo: <https://www.youtube.com/watch?v=ZWZKJb06CTU>.
A necessidade de contar evoluiu com a civilização, e com o advento do
computador e a era da informação surgiram novos sistemas de numeração. As
operações de conversão entre estes sistemas passaram a ser conhecimento
obrigatório para os profissionais da computação.
Nessa aula vamos abordar esses sistemas, a conversão entre eles e os
possíveis erros nesse processo, além das operações lógicas e aritméticas em
binário. Para ampliar seus conhecimentos, leia o capítulo 2 – “Teoria dos
números”, do livro Tópicos de matemática aplicada, e o capítulo 3 do livro
Organização estruturada de computadores (5. ed).

TEMA 1 – SISTEMAS DE NUMERAÇÃO

Sistemas de numeração compreendem a forma de representarmos


valores por intermédio de símbolos, geralmente números, organizados de forma
que o valor de cada símbolo depende da posição que ele ocupa, isto é, um
sistema posicional.
Existem diversos sistemas de numeração, sendo o mais comum o
decimal, que utilizamos em nossas comunicações. Além desse, existem os
sistemas: octal, hexadecimal e o binário, sendo esse último utilizado
naturalmente pelos computadores, também chamado de sistema digital.

1.1 Sistema de numeração decimal

O sistema de numeração decimal é o nosso sistema numérico por padrão,


e nós, seres humanos, o utilizamos para representar valores e quantidades em
processos de comunicação. É um sistema posicional, no qual o valor de um
símbolo (ou algarismo) é proporcional à posição que ocupa no número. A
posição é crescente da direita para a esquerda, partindo da posição 0 (zero), e
decrescente da esquerda para a direita, sendo que assume valores negativos a
partir da vírgula. Sua base, expressa pela letra grega Beta em maiúsculo (β), é
10, e isso também define seu conjunto de símbolos, algarismos ou números:

2
N = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

A posição do símbolo no número refere-se ao expoente da base do


sistema (β = 10). A Figura 1 traz o exemplo:

Figura 1 – Exemplo de representação decimal

No capítulo 2 do livro Tópicos de matemática aplicada são apresentadas


as formas das operações aritméticas básicas deste sistema de numeração.

1.2 Sistema de numeração octal

Nos primórdios da era da computação digital foi criado um sistema melhor


adaptado aos computadores, o sistema octal, usado como alternativa ao sistema
binário, vigente até então.
Pode-se verificar o uso desse sistema na computação e nas linguagens
de programação das primeiras gerações. Este sistema prevaleceu na
programação em linguagem de máquina e na comunicação entre os
computadores por algum tempo, tinha a base (β) 8, a qual define o conjunto de
símbolos (ou seja, os algarismos ou números) utilizados:

N = {0, 1, 2, 3, 4, 5, 6, 7}.

O sistema octal também é um sistema posicional, no qual o valor efetivo


de um número depende da sua posição.
Para representarmos em Octal o mesmo exemplo usado anteriormente
para o sistema de numeração decimal, teremos o que nos mostra a Figura 2:

Figura 2 – Exemplo de representação em octal

3
1.3 Sistema de numeração hexadecimal

O sistema de numeração binário é de difícil compreensão para nós, pois


gera números relativamente grandes para representar valores comuns no dia-a-
dia. Para fazer frente a esses problemas passamos a utilizar o sistema de
numeração hexadecimal, o mais utilizado nas linguagens de programação, em
especial nas linguagens da primeira até a terceira geração.
Entre outras representações, o sistema hexadecimal é usado para
referenciar os endereços de memória e de rede, a cor e os caracteres em
interfaces nas aplicações da internet, e diversos outras. Este sistema tem como
base (β) o 16, e os símbolos expandem os números de 0 a 9 com letras,
compondo o seguinte conjunto de símbolos:

N = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}.

Um aspecto interessante desse sistema é que os valores em hexadecimal


podem ser representados de diversos modos, tais como:0xNNNN, NNNNh ou
#NNNN, sendo “N” um dígito do sistema hexadecimal.
As letras ou símbolos alfabéticos desse sistema equivalem a valores do
sistema decimal, como mostrado na Figura 3:

Figura 3 – Símbolos alfabéticos do sistema hexadecimal

Na Figura 4 apresentamos algumas representações de valores no sistema


hexadecimal e seu equivalente no sistema decimal:

Figura 4 – Representação em sistema hexadecimal

4
1.4 Sistema de numeração binário

O sistema numérico utilizado, por padrão, pelos computadores é o


sistema de numeração binário. Isto se deve ao uso dos circuitos eletrônicos
digitais, que apresentam apenas dois estados: ligado ou desligado, aceso ou
apagado, presente ou ausente, alto ou baixo, verdadeiro ou falso, entre outros.
Por isso, o sistema de numeração binário é utilizado para representar as
informações digitais e para a comunicação entre computadores e dispositivos
digitais, permitindo que a informação digital seja validada ou conferida, já que
seus valores são apenas dois. O sistema de numeração binário tem a base (β)
é 2 e um conjunto muito reduzido de símbolos:

N = {0, 1}.

A Figura 5 apresenta a representação de valores em binário e sua


equivalência decimal:

Figura 5 – Representação de um número no sistema binário

TEMA 2 – CONVERSÃO ENTRE OS SISTEMAS

Diferente dos computadores, nós utilizamos o sistema de numeração


decimal para expressarmos valores e quantidade. É comum haver a
necessidade de converter números expressos em outros sistemas para o
sistema decimal, ou do sistema decimal para outros sistemas. Também é
necessário converter números expressos nos demais sistemas entre si para a
realização de operações ou identificação de representações. Ou seja, é
necessário conhecermos o processo de conversão de uma base β qualquer para
outra base β, o que denominamos conversão de base.

5
O processo de conversão de base está sujeito às limitações de
representação e de cálculo, e às restrições do ambiente computacional, o que
pode ocasionar erros, como resultados inexatos e imprecisões.

2.1 Conversão de uma base qualquer (β) para a base 10 (decimal)

Para executar a conversão de um valor expresso na base β (uma base


qualquer) para a base decimal (10) executamos a fatoração do número expresso.
Isso já foi utilizado por nós na apresentação dos sistemas de numeração. A
Figura 6 apresenta a fórmula geral:

Figura 6 – Fatoração de um número na conversão para a base 10

Nessa representação os dígitos do sistema de base β são as letras (a, b,


c, d, e). Os expoentes de β na fórmula são as posições ocupadas cada dígito. O
valor das posições dos dígitos inteiros, à esquerda da vírgula, cresce da direita
para a esquerda, a partir do 0 (zero). Já as posições dos valores fracionários, à
direita da vírgula, aumentam à medida em que o dígito se desloca à direita,
porém o valor diminui, posto que o expoente é negativo. A Figura 7 mostra essa
forma de expressão:

Figura 7 – Conversão de uma base qualquer β para a base 10

2.2 Conversão da base decimal para uma base β

Para convertermos um valor expresso no sistema decimal (base 10) para


um sistema de base β fazemos divisões sucessivas do número na base 10 pela
base β, até que o quociente seja menor que β. Isto se aplica à conversão da
parte inteira do valor. Já para o valor fracionário devemos fazer multiplicações
sucessivas pela base β até obtermos um valor exclusivamente inteiro. Ao
6
efetuarmos cada multiplicação devemos descartar a parte inteira da
multiplicação anterior. A Figura 8 é um exemplo de conversão de valores
expressos no sistema decimal para o sistema binário:

Figura 8 – Conversão de decimal para binário

Um outro exemplo de conversão do sistema decimal para o sistema octal


está na Figura 9:

Figura 9 – Conversão de decimal para octal

A Figura 10 representa uma conversão do sistema decimal para o sistema


hexadecimal:

Figura 10 – Conversão de decimal para hexadecimal

7
2.3 Conversão da parte fracionária

Como já adiantamos, a conversão da parte fracionária, valores entre 0 e


1, de um valor expresso no sistema decimal para um sistema de base β é feita
por multiplicações sucessivas da parte fracionária por β, até se obter um valor
exclusivamente inteiro.
A cada multiplicação remove-se a parte inteira, como mostrado na
conversão do sistema decimal para o sistema binário na Figura 11:

Figura 11 – Conversão da parte fracionária

2.4 Conversão direta

Uma opção para fazer a conversão entre sistemas é a substituição direta,


que é possível nos casos da conversão dos sistemas hexadecimal e octal para
binário, ou vice-versa. Isso porque as bases destes sistemas, 16 e 8, são
potências de 2, representadas por conjuntos fixos de dígitos binários:

Três dígitos binários para cada dígito octal, já que 23 = 8

Quatro dígitos binários para cada digito hexadecimal, já que 24 = 16

Os exemplos da Figura 12 a seguir demonstram o processo:

Figura 12 – Conversão direta entre binário e octal/hexadecimal

8
TEMA 3 – ERROS DE CONVERSÃO

Na conversão entre sistemas podem ocorrer erros de dois tipos:

1. Os erros de precisão, que ocorrem em função da quantidade insuficiente


de dígitos para representar o valor. Nos sistemas de computação digital o
número de dígitos binários usados para representar os números é
geralmente pré-definido e limitado: caso haja a necessidade de
representar um valor com uma quantidade de dígitos maior que o limite,
ocorrerá um erro de precisão. Esta ocorrência é típica das variáveis em
programas de computador.
2. Os erros de exatidão ocorrem quando há a aproximação, o
arredondamento ou a ocorrência de dízimas periódicas. Neste caso,
devido à limitação do número de dígitos ou da capacidade de cálculo,
geralmente há uma interrupção inesperada da representação.

Embora possam parecer a mesma coisa, há uma diferença entre os tipos


de erros, e sua ocorrência gera consequências distintas no ambiente
computacional.
O limite de precisão resulta em truncamento, e afeta principalmente os
cálculos com os números irracionais, com o número π (Pi). Em geral este número
é representado com duas casas decimais, como 3,14, porém as calculadoras
podem representá-lo com oito casas decimais (3,1415926), o que é razoável
para maioria dos cálculos. Porém, em cálculos mais extensos é necessário usar
uma maior precisão, tal como a representação do Pi com cinquenta e duas casas
decimais:

O uso de precisões maiores requer a aplicação de algoritmos


computacionais específicos. Por exemplo, já se tem realizado o cálculo de Pi
com trilhões de dígitos. Os erros de conversão, assim como os demais erros,
podem ser expressos de forma absoluta ou relativa.

3.1 Erro absoluto

O erro absoluto é a diferença entre o valor real e a forma na qual foi


expresso. Calculamos o erro absoluto pela seguinte fórmula:

9
𝑬𝑨𝒙 = x - 𝐱̅

Tomando o exemplo dado do valor de Pi, sendo x o valor de Pi com sete


casas decimais e 𝐱̅ o valor de Pi com dois decimais, então temos:

3,1415926 - 3.14 = 0,0015926

É claro que isto é apenas um exemplo, pois o valor real de Pi é algo ainda
desconhecido.

3.2 Erro relativo

O erro relativo é a razão entre o erro absoluto EA e o valor real x, isto é:

𝑬𝑨𝒙
𝑬𝑹𝒙 = 𝒙

Ou:

𝒙 − 𝐱̅
𝑬𝑹𝒙 = 𝒙

Se utilizarmos os valores do exemplo dado:

𝟑,𝟏𝟒𝟏𝟓𝟗𝟐𝟔 − 𝟑.𝟏𝟒
𝑬𝑹𝒙 = → 𝑬𝑹𝒙 = 5 x 10-4 ou 0,05%
𝟑,𝟏𝟒𝟏𝟓𝟗𝟐𝟔

TEMA 4 – LÓGICA BINÁRIA

Você já se perguntou de que forma as operações de um computador


podem ser executadas, já que esse usa somente o sistema binário?
As informações que os computadores armazenam e processam são bits,
dígitos binários, pois os circuitos eletrônicos do computador digital operam
somente com os dígitos zero (0) e um (1). Portanto, todos os cálculos
computacionais, por mais complexos que sejam, são realizados com a lógica e
a aritmética binária.
O computador digital é uma formidável combinação de diversos circuitos
eletrônicos que realizam um altíssimo volume de operações, o que o torna capaz
de realizar as mais complexas operações matemáticas por meio da
programação.

10
Estes circuitos elementares são conhecidos como portas lógicas, e
realizam as operações mais básicas da lógica e aritmética binária. Estas
operações são realizadas no nível dos bits, e são apresentadas a seguir.

4.1 NOT: “não “ou “negação”

A operação de negação (NÃO ou NOT) ou inversão, também chamada de


complemento, é realizada apenas com um operador: um único bit. Apresenta
como resultado o inverso do valor desse operador. Nas expressões lógicas essa
operação é representada por um til “~” que precede o valor, ou por uma barra
horizontal colocada sobre o valor negado / inverso - 𝐴, que se lê “A barra” ou “A
barrado” ou “A negado”. A tabela verdade é a seguinte (Tabela 1):

Tabela 1 - Tabela verdade da operação NOT

4.2 AND: “e”

É a operação de conjunção binária, isto é, uma operação muito


semelhante à multiplicação. Esta operação, como resultado, apresenta um valor
1 na saída apenas quando todos os operandos apresentam um valor 1. Para os
demais valores o resultado é “0”. Esta operação é representada pelo símbolo
“&” (E comercial) ou, em inglês, “Ampersand”. A tabela verdade para esta
operação é (Tabela 2):

Tabela 2 – Tabela verdade da operação AND

11
4.3 OR: “ou”

É a operação de disjunção binária, que é semelhante à soma ou adição.


Nesta operação, há um resultado 1 quando qualquer um dos operandos tem
valor 1.
A operação OR é assinalada nas expressões lógicas com o sinal de
adição (+), e sua tabela verdade (Tabela 3) é a seguinte:

Tabela 3 – Tabela verdade da operação OR

4.4 XOR: “ exclusivo”

Está é a operação lógica binária de disjunção exclusiva, a qual tem por


finalidade detectar uma desigualdade entre os valores dos operandos. Somente
apresenta um valor 1 como resultado quando os operandos têm valores
diferentes. É representada pelo sinal de adição contornado por um círculo: ⊕. A
tabela verdade é a seguinte (Tabela 4):

Tabela 4 – Tabela verdade da operação XOR

4.5 SHIFT: “deslocamento”

A operação binária de deslocamento (ou rotação) de bits efetua a divisão


ou multiplicação por 2 (e por seus múltiplos). Dado um número binário, ao

12
deslocarmos os bits da direta para a esquerda em uma posição (operação
representada pelo sinal <<), multiplicamos o valor por 2.
Realizando o deslocamento no sentido contrário, da esquerda para a
direita (operação representada pelo sinal >>), dividimos o valor por 2, com o
resultado inteiro. Essa operação é demonstrada na Figura 13:

Figura 13 – Operação SHIFT

Em binário 0 1 0 0 1 1 0 1 << 1 0 0 1 1 0 1 0
Em decimal 77 x2 154
Em binário 0 1 0 0 1 1 0 1 >> 0 0 1 0 0 1 1 0
Em decimal 77 /2 38

É bom ressaltar: as posições deslocadas são preenchidas com “0”, e


dessa forma a operação só apresenta resultados inteiros. Entretanto, no caso de
utilizarmos a aritmética de ponto flutuante, os valores fracionários da divisão por
2 serão apresentados

TEMA 5 – ARITMÉTICA BINÁRIA

As operações aritméticas básicas são realizadas por meio de circuitos


semelhantes aos – ou compostos pelos – das operações lógicas, ou seja, as
portas lógicas.
Do ponto de vista matemático, essas operações em nada diferem das
operações aritméticas fundamentais que conhecemos nos primeiros anos de
nossa formação: soma, subtração, multiplicação e divisão.
Os processos para a realização das operações seguem as mesmas
regras, e são simples. Uma atenção especial é necessária devido ao fato de
tratarmos de um sistema com apenas dois dígitos, o qual não é natural para nós,
seres humanos.

5.1 Adição binária

A adição ou soma binária assemelha-se à soma decimal, incluindo a


operação de “vai-um” – que aqui denominamos Carry Out, porém utilizando
somente os dígitos do sistema de numeração binário (zero e um). Esta operação

13
é designada pelo sinal de adição (+) nas equações, e as regras da operação são
as seguintes:

0+0=0
0+1=1
1+0=1
1 + 1 = 0 e “vai um” (Carry Out = 1)
1 + 1 + 1 = 1 e “vai um” (Carry Out = 1)

A tabela verdade da operação apresentada na Tabela 5, que relaciona os


resultados.

Tabela 5 – Tabela verdade da adição binária

Vamos exemplificar a operação demonstrando a soma dos seguintes


valores (Figura 14): 101 + 011.

Figura 14 – Exemplo

Convém notar que não utilizamos a soma binária com dois bits apenas,
mas sim com todo tipo de valores. No exemplo a seguir vamos realizar a soma
dos valores decimais 65 e 68, tanto no sistema decimal como no sistema binário.
Na Figura 15 podemos validar o resultado:

14
Figura 15 – Validação do resultado

"Vai um"→ 11
(Carry Out) 65 1000001
+ 68 + 1000100
133 10000101

Primeiro fizemos a conversão dos operadores para o sistema binário e,


em seguida, somamos bit a bit, sempre observando as regras da operação.
Vejamos mais este exemplo: somar os valores octais 3705 e 3717. (Figura 16)

Figura 16 – Exemplo

"Vai um"→ 1 1 11111 1111


(Carry Out) 3705 11111000101
+ 3717 + 11111001111
7624 111110010100

Da mesma forma que no exemplo anterior, primeiro fizemos a conversão


para o sistema binário e a seguir somamos bit a bit, observando as regras da
operação. Vamos realizar mais esta operação: somar os valores hexadecimais
89F e 457 (Figura 17).

Figura 17 – Exemplo

"Vai um"→ 1 11111


(Carry Out) 89F 100010011111
+ 457
+ 10001010111
CF6 110011110110

Seguimos os mesmos passos das operações anteriores: conversão e


soma bit a bit, obedecendo as regras. Em seu ambiente virtual de aprendizagem
(UNIVIRTUS), foi disponibilizada uma lista de exercícios com operações de
soma. Acesse essa lista e resolva-os. Troque ideias a respeito dessa operação
com seus colegas de turma por intermédio do fórum.

15
5.2 Multiplicação binária

A multiplicação binária segue o mesmo modelo da multiplicação decimal,


porém com a utilização apenas dos dois dígitos binários: zero e um. Uma boa
opção para estruturar a operação é colocar o número maior acima do número
menor. Assim a operação fica mais clara. A tabela verdade (Tabela 6) da
operação é a mesma da operação lógica AND, como segue:

Tabela 6 – Tabela verdade da multiplicação binária

As regras para a operação de subtração binária são simples, a saber:

0x0=0
0x1=0
1x0=0
1x1=1

Os resultados de cada multiplicação de um bit são colocados em linhas


seguidas, deslocando-se um dígito para a esquerda, e realizando uma soma ao
término dos dígitos do multiplicador, como mostra a Figura 18:

Figura 18 – Exemplo

6 110
x 5 x 101
30 110
+ 000
110
11110

16
Vamos para mais um exemplo (Figura 19): realizar, em modo binário, a
operação decimal 22 x 7:

Figura 19 – Exemplo

22 10110
x 7 x 111
154 10110
+ 10110
10110
10011010

5.3 Subtração binária

A subtração binária segue o mesmo processo da subtração decimal,


incluindo o artifício de “pedir emprestado” um dígito de maior valor (à esquerda),
quando se subtrai um valor maior de um valor menor, isto é, 1 (um) de 0 (zero).
É semelhante à operação XOR, e também pode ser realizada por meio da soma
com complemento de 2. A tabela verdade da operação de subtração binária é a
seguinte (Tabela 7):

Tabela 7 – Tabela verdade da multiplicação binária

As regras para a operação de subtração binária são:

0-0=0
0 - 1 = 1 e “pede emprestado” 1 ao dígito da esquerda
1-0=1
1-1=0

Exemplo: realizar a subtração 5 – 3 em binário.

17
Figura 20 – Exemplo

Outro exemplo: realizar a subtração 68 – 65 em binário.

Figura 21 – Exemplo

68 1000100
- 65 1000001
3 11
E mais um exemplo: realizar a subtração 22-7 em binário.

Figura 22 – Exemplo

22 10110
- 7 111
15 1111

5.4 Divisão binária

O modelo da divisão binária segue o mesmo processo da divisão em


decimal, operando inclusive com os mesmos componentes:
O valor a ser dividido: dividendo;
O número que deve estar contido n vezes no dividendo: divisor;
O valor que se busca – o resultado da divisão: quociente;
Caso a divisão não seja inteira, temos o resto, isto é: dividendo – (divisor
* quociente). O resto sempre deve ser menor que o quociente.

Figura 23 – Realizando a divisão decimal 42/ 6 em binário (101010/110)

18
Conferindo o resultado em Decimal: 42 / 6 = 7
Realizando a divisão decimal 37 / 4 usando o sistema binário teremos
(Figura 24):

Figura 24 – Exemplo

37 4 100101 100
- 36 9 100 1001
1 0101
- 100
1
Resultado em decimal: 37 / 4 = 9, e resto = 1.
É importante observar dois aspectos muito importantes neste último caso:
Sobra um resto, pois a divisão não é inteira;
Realizada a primeira divisão, quando “100” – dividendo - é dividido por
“100” – divisor, ao fazer a descida do valor “1” do dividendo ainda não se tem um
valor que possa ser dividido por “100”.
Foi adicionado um digito “0” ao quociente e descido mais um dígito. No
caso é “0”, o que faz o dividendo ser ainda insuficiente, pois “010” é menor que
“100”.
Então, repete-se este passo: acrescenta-se um zero ao quociente e
desce-se mais um dígito, formando assim o valor 0101 que, desta forma, pode
ser dividido por 100, restando então o valor 1. Mais um exemplo: vamos realizar
a divisão decimal 22 / 7 usando o sistema binário (Figura 25):

Figura 25 – Exemplo

22 7 10110 111
- 21 3 111 011
1 1000
- 111
1

Note que há a mesma ocorrência dos dois aspectos, de forma semelhante


à do exemplo anterior.

19
FINALIZANDO

Conhecer os sistemas numéricos e as operações apresentadas é um


passo fundamental para conhecer o funcionamento dos sistemas
computacionais, e também para o entendimento das operações que estes
realizam.
A maior parte destes processos apresentados são feitos por software e
hardware, entretanto, o estudo destas operações e dos processos e o domínio
das técnicas apresentadas é indispensável para a evolução na escalada do
conhecimento. Dominar as operações mais fundamentais realizadas por um
sistema computacional digital ajuda-nos a compreender o funcionamento, as
restrições e as potencialidades desse sistema.

20
REFERÊNCIAS

GUIMARÃES, C.H.C. Sistemas de numeração: aplicação em computadores


digitais. Rio de Janeiro: Interciência, 2014.

LEITE, A. E., CASTANHEIRA, N.P. Teoria dos números e teoria dos


conjuntos. Curitiba: InterSaberes, 2014.

MACEDO, L. R. D., CASTANHEIRA, N. P., ROCHA, A. Tópicos de matemática


aplicada. Curitiba: InterSaberes, 2013.

TANEMBAUM, A. S. Organização estruturada de computadores. São Paulo:


Pearson Prentice Hal, 2014.

21

Você também pode gostar