-
Os sistemas computacionais
trabalham
-
com o sistema binário
de numeração,
-
ou seja, com o sistema
de base 2,
-
no qual nós trabalhamos
com os algarismos 0 e 1.
-
Portanto, é necessário
nós fazermos as conversões
-
de outros valores,
de outras bases,
-
geralmente a base 10,
para a base 2.
-
Nesse processo de
conversão entre bases,
-
existem erros que ocorrem
-
principalmente quando
nós fazemos a conversão
-
de números decimais,
números que têm casas decimais,
-
como dízimas não periódicas
para a base 2.
-
Então, há uma perda
das casas decimais
-
nesse processo de conversão.
-
Nós chamamos esse tipo de situação
de erros em conversões de bases.
-
Nós temos então
um tratamento estatístico,
-
que tem o objetivo de
minimizar esses erros,
-
ou minimizar essa
margem de erro
-
que acontece
e que deve ser prevista.
-
Nós trabalhamos em computação,
de maneira geral,
-
com três bases, com três
sistemas de numeração:
-
o sistema de base 2,
sistema binário,
-
o sistema de base 10,
também chamado de sistema decimal,
-
e o sistema de base 16,
que é o sistema hexadecimal,
-
no qual nós trabalhamos com
os 10 algarismos do sistema decimal
-
e mais letras que são
utilizadas para representar
-
números no sistema de base 16.
-
O sistema de base 10 trabalha
com 10 algarismos que vão de 0 a 9.
-
Esses algarismos são chamados
de algarismos indo-arábicos,
-
em homenagem à sua origem,
-
e, dessa forma, nós conseguimos
converter esses valores
-
desse sistema de base 10
para o sistema de base 2.
-
Vamos ver aqui um exemplo
-
onde a gente compreende
um pouco mais
-
esse sistema de
numeração de base 10,
-
que é um sistema
de numeração posicional.
-
Isso significa que nós trabalhamos
com potências de 10
-
associadas a cada um
dos algarismos
-
que fazem parte de um
determinado número.
-
Veja o exemplo aqui.
-
Sabendo que o sistema de base 10
é um sistema posicional,
-
nós vamos entender
que o valor associado
-
a um determinado algarismo
depende da sua posição no número.
-
Vamos ver então
alguns exemplos aqui.
-
No item A,
nós temos o número 25,
-
que nós podemos indicar também
como 25 na base 10.
-
Para simplificar, a gente
costuma indicar apenas 25 assim.
-
E aí nós entendemos
que o primeiro algarismo aqui,
-
que é o algarismo 5,
multiplica um 10 elevado a 0.
-
Já o segundo algarismo
da direita para a esquerda é o 2,
-
e ele multiplica o 10
elevado ao expoente 1.
-
Então, é por esse motivo que nós
chamamos de sistema posicional.
-
Isso indica que cada algarismo
multiplica uma determinada potência,
-
que está associada à base do número
que você está trabalhando.
-
Se é um número de base 10,
são potências de 10,
-
se é um número
de base 2, base 3, base 5,
-
são potências de 2, 3 e 5.
-
E se você fizer
esse cálculo aqui,
-
você vai observar que
o resultado é exatamente 25,
-
porque 10 elevado a 1 é 10,
vezes 2 vai dar 20,
-
e 10 elevado a 0 é 1,
qualquer valor elevado a 0 é 1,
-
e 1 vezes 5 é 5.
-
Então, você vai ficar com
20 somado com 5,
-
gerando 25 na base 10.
-
Mais um exemplo aqui,
o número 2784
-
nós também podemos escrever
como 2784 na base 10,
-
para deixar evidente que se trata
de um valor da base 10.
-
Dessa maneira,
nós entendemos então
-
que o algarismo 4,
que é o algarismo das unidades,
-
multiplica 10 elevado a 0.
-
O algarismo das dezenas, que é o 8,
multiplica 10 elevado a 1.
-
O algarismo das centenas, que é o 7,
multiplica 10 ao quadrado.
-
e o algarismo da unidade
de milhar, que é o 2,
-
multiplica 10 ao cubo.
-
Então, se você
fizer esse cálculo,
-
você vai chegar
exatamente em 2784.
-
São 2 vezes 1000,
que vai dar 2000,
-
7 vezes 100, que são 700,
8 vezes 10, que são 80,
-
e 4 vezes 1, na realidade,
que vai gerar 4.
-
Se você fizer 2000 mais 700
mais 80 mais 4,
-
você vai obter 2784.
-
Como nós sabemos,
-
os computadores trabalham
com um sistema de base 2,
-
que é conhecido
como sistema binário.
-
Além disso,
nós temos uma álgebra
-
que envolve todo esse
processamento na base 2,
-
que é conhecida como
álgebra de Boole ou booleana,
-
em homenagem a um matemático
inglês do século XIX
-
de sobrenome Boole.
-
E nesse caso, então,
-
nós temos uma gramática específica,
uma gramática algébrica
-
que trabalha com
esses algarismos 0 e 1,
-
que são os algarismos
do sistema binário,
-
e mais uma série de propriedades
e axiomas que nos permitem
-
desenvolver um sistema de forma
organizada, lógica e sistêmica,
-
atendendo uma série de condições
e propriedades dessa álgebra
-
que é chamada de álgebra booleana,
como eu comentei aqui.
-
Então, lembrando que
o sistema de base 2
-
também é um sistema posicional,
assim como o sistema de base 10.
-
Isso significa dizer o seguinte:
-
que cada algarismo
do sistema de base 2
-
está associado a uma certa
potência de base 2, justamente.
-
Então, nós entendemos
que o algarismo 1 aqui
-
multiplica 2 elevado a 0,
-
já esse algarismo 0
multiplica 2 elevado a 1,
-
e esse algarismo 1
multiplica 2 ao quadrado.
-
Se você fizer esse cálculo aqui,
-
veja que 2 ao quadrado é 4,
vezes 1 vai dar 4 mesmo,
-
2 elevado a 1 é 2,
vezes 0 vai dar 0,
-
e 2 elevado a 0 equivale a 1,
1 vezes 1 resulta em 1,
-
de maneira que, aqui,
-
você vai ficar com 4 mais 0
mais 1, resultando em 5.
-
Esse resultado que você
encontra aqui, que é o 5,
-
representa para nós a conversão
desse número para a base 10.
-
Portanto, o resultado 5
é 5 na base 10.
-
Assim, a gente diz que
o número 101 na base 2
-
corresponde ao número
5 na base 10.
-
Veja aqui mais um exemplo:
o número 1001, na base 2,
-
corresponde ao
número 9 na base 10.
-
Como a gente pode descobrir isso?
-
De maneira simples.
-
Basta lembrar, então,
que cada algarismo da base 2
-
está associado a uma
potência de 2,
-
sendo que o algarismo
aqui mais à direita
-
está associado a
uma potência de base 2
-
elevada a expoente 0.
-
Então, aqui é 2 elevado a 0,
2 elevado a 1, 2 ao quadrado
-
e 2 ao cubo.
-
Portanto, o algarismo 1
multiplica 2 ao cubo,
-
o algarismo 0
multiplica 2 quadrado,
-
o algarismo 0
multiplica 2 elevado a 1,
-
e esse último algarismo
aqui, que é 1,
-
multiplica 2 elevado a 0.
-
Agora, nós fazemos
as contas aqui.
-
2 ao cubo é 8,
vezes 1 vai dar 8 mesmo.
-
Isso aqui vai dar 0,
e isso aqui vai dar 0.
-
E aqui, 1 vezes 1 vai dar 1.
-
Então, você fica com 8
mais 0, mais 0, mais 1,
-
resultando em 9,
9 na base dez.
-
Veja outro exemplo aqui.
-
No caso de conversões, então,
-
de valores da base 2
para a base 10,
-
É só a gente lembrar
que cada algarismo
-
multiplica uma certa
potência de 2.
-
Então o algarismo zero
aqui mais à direita,
-
multiplica 2 elevado a 0,
-
o outro algarismo 0
já multiplica 2 elevado a 1,
-
e dessa maneira,
-
você tem esse algarismo 1
multiplicando 2 quadrado,
-
esse algarismo 1
multiplicando 2 ao cubo,
-
e esse primeiro algarismo aqui
multiplicando 2 à quarta.
-
Fazendo essas contas, então,
calculando a potência mesmo,
-
2 à quarta é 16,
vezes 1 dá 16.
-
2 ao cubo é 8, vezes 1 vai dar 8,
16 mais 8 é 24,
-
24 mais 4 é 28,
aqui e aqui é 0,
-
então, você tem 28 na base 10.
-
Veja o problema aqui.
-
Qual é o número
do apartamento do Bender,
-
que é um personagem
do desenho Futurama?
-
Aqui, a gente pode
dar uma consultada,
-
e você vai verificar que
o número que aparece no seriado
-
é esse número aqui: 00100100.
-
Esse número que aparece
lá no desenho, no seriado,
-
na verdade é um número
que está na base 2.
-
Então, nós podemos lembrar
-
que basta converter
esse número para a base 10.
-
Assim, a gente descobre
qual é o número
-
do apartamento do Bender
na base 10.
-
Na base 2 é isso aqui
mesmo, 00100100.
-
Então, lembrando que
cada algarismo multiplica
-
uma certa potência de 2,
-
a gente acaba ficando com
esse algarismo 0 aqui à direita,
-
multiplica 2 elevado a 0,
-
esse algarismo 0,
multiplica 2 elevado a 1,
-
e dessa forma 0
multiplica 2 quadrado,
-
esse 0 multiplica 2 ao cubo,
-
o 1 já vai multiplicar
aqui o 2 à quinta,
-
já esse 0 multiplica o 2 à sexta
-
e esse outro algarismo 0
multiplica 2 à sétima.
-
E aí, fazendo as contas,
-
veja que a gente tem vários locais
aqui onde o resultado é 0.
-
Aqui vai dar 0,
aqui vai dar 0, aqui vai dar 32,
-
aqui é 0, aqui é 0, aqui é 4,
-
aqui é 0 e aqui é 0.
-
Então, você fica com 32 mais 4
que é 36 na base 10.
-
Portanto, a gente pode dizer que o
número do apartamento do Bender
-
na base 10, é 36.
-
Nós também conseguimos converter
-
um número da base 10
para a base 2.
-
Esse processo é o processo inverso,
então, de conversão,
-
e nós trabalhamos
com uma técnica
-
que é chamada de técnica
das divisões sucessivas.
-
Ou seja, é um processo no qual você
considera um valor da base 10,
-
esse valor será sucessivamente
dividido por 2,
-
e aí você aproveita os valores que
surgem desse processo de divisão.
-
Veja alguns exemplos, então.
-
Vamos considerar
a conversão do 35 e do 19,
-
que são números da base 10
para a base 2.
-
Então, eu vou começar aqui
dividindo 35 por 2.
-
O resultado dessa divisão
é 17 e sobra 1,
-
veja que esse 1
é o resto da divisão.
-
35 dividido por dois
dá 17, sobra 1.
-
Agora, esse 17,
que foi o resultado da divisão,
-
eu divido por 2 novamente.
-
17 dividido por 2
dá 8, sobra 1,
-
8 dividido por 2
dá 4 e sobra 0.
-
4 dividido por 2
vai dar 2 e sobra 0,
-
e 2 dividido por 2
dá 1 e sobra 0.
-
Uma vez que você obteve
aqui o algarismo 1,
-
que foi a última divisão aqui,
2 dividido por 2 que dá 1,
-
a gente aproveita
esse quociente que é 1
-
e os demais restos da divisão.
-
Então repare que, nessa técnica
de divisões sucessivas,
-
você considera esse
último quociente,
-
que foi o algarismo 1,
-
e os demais restos que surgiram
nas divisões sucessivas,
-
nesse sentido aqui,
conforme essa flecha indica.
-
Então, veja que esse número 35,
convertido para a base 2,
-
é representado como 1000011.
-
Veja aqui, 1000011 na base 2.
-
Portanto, 35 na base 2
-
é esse número que nós
estamos observando aqui.
-
Vamos ver mais um exemplo:
o 19 para a base 2
-
é só dividir sucessivamente por 2,
-
já que você quer converter
para a base 2, nesse caso aqui.
-
Então, 19 dividido
por 2 vai dar 9,
-
9 vezes dois dá 18,
para 19 sobra 1,
-
9 por 2 dá 4, resta 1,
-
4 dividido por 2 vai dar 2,
2 vezes 2 dá 4, sobra 0,
-
2 dividido por 2 dá 1,
-
1 vezes 2 é igual a 2
e vai sobrar 0.
-
Agora, eu vou considerar
esse último quociente
-
e os demais restos
nesse sentido aqui,
-
da direita para a esquerda.
-
Portanto, o número 19
convertido para a base 2
-
vai ficar assim: 10011,
10011 na base 2.
-
A gente indica esse 2
pequenininho aqui
-
para reforçar que se trata
de um número da base 2.
-
Mais uma situação aqui, 67.
-
Veja: é só você dividir o 67
sucessivamente por 2,
-
observando os restos e
o último quociente que você obteve.
-
Dessa maneira, então,
-
considerando o último quociente
e todos os restos que surgiram,
-
e nesse sentido aqui,
da direita para a esquerda,
-
você vai obter a conversão
de 67 para a base 2,
-
que acabou resultando em 10000,
quatro zeros, 1 e 1 na base 2.
-
Dessa maneira, você sabe
como fazer conversões
-
de números da base 10
para a base 2.
-
Quando nós representamos
números inteiros
-
em um sistema computacional,
há uma técnica que é utilizada.
-
que nós chamamos
de sinal de magnitude.
-
Nesse caso,
um bit é reservado
-
para você indicar
qual é o sinal do número,
-
se ele é positivo
ou se é negativo.
-
Nós utilizamos o algarismo zero
lá do sistema de base dois
-
para indicar que o valor é positivo
à esquerda
-
e indicamos um à esquerda
do número da base
-
dois para indicar que aquele número
é negativo.
-
Essa técnica então é chamada
de sinal de magnitude
-
para a gente informar
se o número é positivo ou negativo.
-
Nós temos um desafio também
que consiste
-
na conversão de números decimais
para base dois.
-
Veja como fica esse processo.
-
Sendo assim,
-
para converter números da base dez
e apresentam casas decimais,
-
nós primeiro inicialmente
convertemos a parte inteira
-
à parte que está à esquerda
da virgula para a base dez
-
e em seguida a gente vai
duplicando os valores que surge.
-
A parte decimal.
-
A gente vai multiplicando
sucessivamente por dois, duplicando
-
até que a gente
não tenha mais a parte decimal.
-
Essa parte fracionária.
-
Observando o exemplo
aqui vai ficar um pouco mais claro.
-
Por exemplo,
eu tenho um número 0,1875
-
e esse número está na base dez
e um número decimal.
-
Mesmo aqui convencional, 0,1875.
-
E eu quero converter esse número
para a base dois.
-
Então esse número
ele corresponde a um certo X na base
-
dois, digamos assim, para isso.
-
Então a gente vai observar
-
que a parte inteira aqui, a parte
que está à esquerda da vírgula,
-
é zero.
-
Então, como a parte que está
à esquerda da vírgula é zero
-
na parte de na parte
que fica à esquerda da vírgula,
-
na base dois,
a gente também vai ter zero.
-
Se nós tivéssemos um outro valor
aqui,
-
à esquerda da vírgula,
nós iríamos utilizar o método
-
das divisões sucessivas
para determinar
-
como ficaria esse número
na base dois.
-
E aí, feita a conversão, eu deixaria
aqui à esquerda da vírgula
-
o valor que corresponde
a parte inteira aqui convertido
-
para a base dois, justamente aqui
à esquerda da vírgula.
-
Agora, como no caso é zero,
então a gente manteve o zero
-
à esquerda da vírgula.
-
O desafio é converter
esse, esse 18 75
-
que a casa decimal aqui para a base
dois para isso.
-
Então a gente multiplica por dois.
-
Veja que o resultado dá 0,3750.
-
Agora a gente segue com essa parte
decimal,
-
que é O3750 ou 0,3750,
também multiplicado por dois.
-
Mais uma vez a parte decimal,
-
que é o 0,75002750 D750
multiplica por dois.
-
Veja que o resultado vai dar
1,5 1,5 1,50.
-
Na próxima etapa
eu vou levar só a parte decimal,
-
que é o 0,50, não 1,50.
-
Repare só, só o 0,50 vem
pra cá e você multiplica por dois
-
e veja que o resultado vai dar
um número inteiro da um.
-
Então, como aqui
eu cheguei em um valor inteiro
-
a gente para o processo
de duplicação de multiplicação
-
por dois,
e aí basta a gente considerar então
-
esses algarismos que nós destacamos
aqui na cor laranja.
-
Veja que nós consideramos esse valor
que está à esquerda de zero
-
zero à esquerda da vírgula,
melhor dizendo,
-
que é O001 e um.
-
Então esses quatro algarismos aqui
-
eles representam os quatro
algarismos da parte decimal.
-
Portanto, a parte inteira
aqui desse número na base dez é zero
-
e a parte inteira na base dois
acabou ficando zero também.
-
A parte decimal desse número da base
dois é 18 75
-
e convertendo esse 18 75
para a base dois, a gente acabou
-
encontrando esse zero zero
um na base dois.
-
Veja então que é dessa forma
que a gente faz a conversão
-
de um número decimal da base
dez para base dois.
-
Vamos ver um segundo exemplo,
onde esse processo de conversão
-
de um número decimal para base
dois acaba gerando, por exemplo,
-
uma situação de indefinição
do número de casas decimais
-
e, consequentemente,
um tipo de erro em computação.
-
Logo após esse processo,
então, de multiplicação sucessiva
-
por dois, nós encontramos
então esses algarismos que ficaram
-
aqui destacados na cor laranja.
-
Vamos então
-
aproveitar justamente
esses algarismos que vão representar
-
a parte decimal do número
na base dois,
-
assim como 18 75
representa a parte decimal
-
do número na base dez
-
+11001
-
representa a parte decimal do número
-
na base dois,
-
então observe que nesse caso,
-
para a conversão de números decimais
-
para base dois,
nós utilizamos esse método
-
de duplicação sucessiva
da parte decimal do número.
-
É um processo então,
que nos permite fazer esse tipo
-
de conversão de decimais na base
dez para base dois.
-
Vamos ver um outro exemplo
onde essa conversão
-
de um número decimal da base
dez para base dois
-
acaba gerando
uma indefinição de casas decimais
-
e, consequentemente,
um tipo de erro em computação.
-
Nesse exemplo dois
Nós vamos considerar então
-
o número 0,1 vez um decimal
muito comum em termos percentuais,
-
isso aqui seria 10%, por exemplo,
a famosa taxa percentual de 10%.
-
Bem, 0,1
pra ser bem preciso na base dez
-
eu quero saber como é que fica 0,1,
-
que é o número da base
dez na base dois.
-
Então o processo é esse aqui.
-
A parte inteira é zero mesmo
e a parte decimal
-
é o 0,1 e o vírgula um que fica aqui
à direita da vírgula.
-
Esses 0,1 eu multiplico por dois,
o que vai gerar 0,2.
-
E aí agora
eu considero a parte decimal
-
destaque para o zero aqui,
a esquerda da vírgula
-
e a parte decimal que é zero dois,
eu multiplico por dois novamente,
-
o que vai gerar 0,4.
-
Destaque para o zero.
-
A parte decimal quer 0,4.
-
Eu duplico novamente, gerando 0,8.
-
Duplico novamente gerando 1,6.
-
Agora repare que o que eu levo
para a próxima etapa não é 1,6.
-
O que eu levo
para a próxima etapa de duplicação
-
é só a parte decimal,
que é o 0,6 vezes dois.
-
Isso aqui vai gerar 1,2.
-
Novamente, repare que
para a próxima etapa de duplicação,
-
o que eu levo é a parte decimal.
-
Mantém o algarismo
um aqui e leva o 0,2
-
para ser duplicado, gerando o 0,4.
-
Entretanto, quando chega aqui,
eu acabo percebendo que nós voltamos
-
para essa etapa,
onde já tinha aparecido 0,4.
-
Isso significa que daqui para frente
-
esse processo vai ficar
se repetindo indefinidamente.
-
Então, na
-
conversão de 0,1 para a base dois,
-
acaba ocorrendo
esse tipo de situação aqui.
-
Nós dizemos
então que o número que corresponde
-
a 0,1 na base dois, ele acaba
ficando com esse aspecto aqui.
-
Veja só zero zero zero
-
já indicamos aqui
zero zero zero à direita da vírgula.
-
Depois nós temos o um e O111
-
e depois o processo
começa a se repetir novamente.
-
Aí a gente acaba
recomeçando o processo.
-
+1001001
-
Então você tem uma dízima periódica
na base dois.
-
Veja, é um número decimal
e um decimal exato na base dez.
-
E no momento de fazer a conversão
para a base dois,
-
eu acabo me deparando aqui
com uma dízima periódica.
-
E aí nós temos a questão
da limitação do número
-
de casas decimais que o computador
que nós estamos utilizando
-
pode oferecer.
-
Como nós temos um número finito
de casas decimais a disposição,
-
nós então vamos acabar por trabalhar
com apenas algumas casas decimais
-
dessa conversão de 0,1 para base
dois.
-
Um teste que nós podemos fazer aqui
é o processo inverso,
-
onde eu considero aquele número da
base dois que nós acabamos de obter
-
convertido para a
-
base dez, ou seja,
nós convertemos o 0,1
-
que estava na base
dez para a base dois.
-
Encontramos aquele resultado,
aquela dízima periódica.
-
Perfeito!
-
Agora eu vou considerar aquela
dízima periódica que está na base.
-
Dois.
-
Nós somos convém ter para base dez.
-
Veja como fica então o resultado
nesse tipo de conversão.
-
Se nós considerarmos
então o número 0,1 que está na base
-
dez, convertido para a base dois,
nós encontramos esse número aqui.
-
Vimos o processo no slide anterior,
-
agora,
fazendo a transformação inversa.
-
Se nós convertermos esse número
da base dois para base dez,
-
veja aqui, a gente acaba
encontrando esse valor aqui
-
de 0,099601937500.
-
Veja que esse valor
ele fica próximo do 0,1
-
na realidade, porque 0,099
está muito próximo de 0,1.
-
Entretanto,
já não é mais exatamente 0,1,
-
então dependendo do número
de casas decimais que utilize aqui
-
no processo inverso de conversão
para a base dez,
-
veja que o número
já não volta mais para 0,1,
-
por exemplo.
-
Nesse caso aqui,
se você fizer 0,1 menos esse valor.
-
Para você ver
qual é a diferença aqui você vai ver
-
que nós temos aqui
um erro absoluto de 0,0039.
-
Esse erro aqui é um erro absoluto
e a diferença direta
-
entre o número que está na base dez,
o número original
-
e o número que a gente obteve
após essa transformação inversa.
-
E esse tipo de situação então gera
um problema, gera um tipo de erro
-
no processo de trabalho,
com números que estão na base
-
dez e serão convertidos
para a base dois e vice versa.
-
Sendo assim,
-
é necessário fazer a previsão
no sistema desses tipos de erros.
-
Nós temos informações
que ficam disponíveis nos sistemas,
-
deixando claro
então quais são os erros
-
que essas conversões entre bases
estão gerando.
-
Nós temos
inclusive uma área muito grande na
-
no tratamento de erros,
que é representada pelas normas.
-
Nós temos diferentes tipos de normas
que estabelecem quais são essas,
-
essas margens de erros envolvidas
nessas conversões de base.
-
Um exemplo que nós trouxemos aqui
é justamente essa conversão
-
de números decimais
que estão na base dez
-
para números decimais
que ficam na base dois,
-
onde nós podemos notar
esses erros que vão ocorrer
-
e daí a importância de se fazer
essa previsão dos erros,
-
buscando sempre
a minimização desses erros e.