-
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 dez, na base dois.
-
Ah, isso aqui mesmo é +1001100.
-
Então, lembrando que cada algarismo
multiplica
-
uma certa potência de dois.
-
A gente acaba ficando aqui
com esse algarismo zero aqui,
-
mais a direita,
multiplicando dois elevado a zero.
-
Esse algarismo zero,
multiplicadores elevado a um
-
e dessa forma zero multiplicado
dois quadrado.
-
Esse zero multiplicado dois ao cubo
um já vai multiplicar aqui
-
O2A quinta já esse zero multiplica.
-
O2A6 tem esse outro algarismo zero
aqui multiplica dois a sétima.
-
E aí, fazendo as continhas,
veja que a gente tem vários locais
-
aqui onde o resultado é zero.
-
Aqui vai dar zero,
aqui vai dar zero, aqui vai dar 32
-
aqui, zero zero até quatro
-
aqui e zero zero.
-
Então você fica com 32 mais quatro
que é 36 na base dez.
-
Portanto, a gente pode dizer que o
número do apartamento aqui do Bender
-
na base é dez, 36.
-
Nós também conseguimos converter
um número da base
-
dez para base dois.
-
Esse processo é um 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 dez.
-
Esse valor ele será sucessivamente
dividido por dois e aí
-
você aproveita os valores que surgem
desse processo de divisão.
-
Aqui veja alguns exemplos.
-
Então vamos considerar
a conversão do 35 do 19,
-
que são números da base
dez para a base dois.
-
Então eu vou começar
aqui dividindo 35 por dois.
-
O resultado dessa divisão é 17
e sobra um.
-
Veja que esse um
é o resto da divisão 35.
-
Dividir por dois dá 17. Sobra um.
-
Agora, esse 17,
que foi o resultado da divisão,
-
eu divido por dois novamente.
-
17 dividido por dois,
dá oito, sobra um
-
oito, dividido por dois
dá quatro e sobra zero quatro.
-
Dividido por dois,
vai dar dois e sobra zero
-
e dois, divide por dois,
dá um e o sobra zero.
-
Uma vez que você obteve aqui
o algarismo um,
-
foi a última divisão aqui dois
Dividir por dois que dá um.
-
A gente aproveita esse quociente
que é um
-
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 um
-
e os demais restos que surgiram
nas divisões sucessivas.
-
Nesse sentido aqui, conforme
conforme essa flechinha indica.
-
Então veja que esse número 35
convertido para a base dois,
-
ele é representado como um zero
zero zero um.
-
Veja aqui um zero zero um na base
dois, portanto 35 na base dois.
-
É esse número
que nós estamos observando aqui.
-
Vamos ver mais um exemplo
aqui o 19 para a base dois
-
é só dividir sucessivamente
por dois, já que você quer converter
-
para a base dois.
-
Nesse caso aqui, então
19 dividido por dois vai dar nove
-
nove vezes dois dá 18 para 19
sobra um, nove por dois dá quatro,
-
resta um
-
quatro dividido por dois,
vai dar dois, dois, dois dá quatro.
-
Sobre zero dois,
divide por dois, dá um,
-
um vezes dois é igual a dois
e vai sobrar zero.
-
Agora eu vou considerar esse
último quociente e os demais restos
-
nesse sentido, aqui na direita
para a esquerda, portanto,
-
o número 19
convertido para a base dois.
-
Ele vai ficar assim um +11001
-
na base dois a gente indica
esse dois pequenininho aqui
-
para reforçar que se trata
de um número da base dois.
-
Mais uma situação aqui.
-
67. Veja, é só você dividir o 67
sucessivamente por dois,
-
observando os restos
e o último quociente que você obteve
-
dessa maneira.
-
Então, considerando
o último quociente e todos os restos
-
que surgiram, é nesse sentido
aqui da direita para a esquerda,
-
você vai obter a conversão de 67
para a base dois,
-
que acabou resultando em um +00401
e um um um na base dois.
-
Dessa maneira, você sabe como
-
fazer conversões de números da base
dez para base dois.
-
Quando nós representamos
números inteiros
-
em um sistema computacional,
há uma técnica que é utilizada.
-
Nós chamamos de sinal de magnitude.
-
Nesse caso, um bit
-
é reservado para você indicar
qual é o sinal do número.
-
Seria positivo? Seria 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.