Ir para o conteúdo

Aula 26 - Exercício Binário para decimal

Continuando a nossa série de aulas sobre vetores, vamos realizar o exercício de conversão de binário para decimal.

Dicas#

Antes de realizar o exercício, vamos entender como funciona a conversão de binário para decimal. Para começar vamos pensar no número binário 01011011.

Binário 0 1 0 1 1 0 1 1

Para realizar a conversão, vamos multiplicar cada número pelo seu respectivo valor de potência de 2. Para isso vamos utilizar a tabela abaixo:

Binário 0 1 0 1 1 0 1 1
Posição 7 6 5 4 3 2 1 0
Potência 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

Agora devemos somar as multiplicações das potências com os valores binários de cada posição:

\[ 0 * 2^7 + 1 * 2^6 + 0 * 2^5 + 1 * 2^4 + 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 \]
\[ \Rightarrow 0 + 64 + 0 + 16 + 8 + 0 + 2 + 1 = 91 \]

Uma outra forma de visualizar o binário

Questão#

Desenvolva um programa em que o usuário irá informar um número binário e o programa deverá retornar o número decimal equivalente.

$ Digite o dígito 1: 0
$ Digite o dígito 2: 1
$ Digite o dígito 3: 0
$ Digite o dígito 4: 1
$ Digite o dígito 5: 1
$ Digite o dígito 6: 0
$ Digite o dígito 7: 1
$ Digite o dígito 8: 1

Decimal: 91

Solução#

exercicio.alg
algoritmo "binario"

var
    binario: vetor[0..7] de inteiro
    i, j, decimal, res: inteiro

inicio
    para i de 7 ate 0 passo -1 faca
        escreva("Digite o dígito ", 8 - i, ":")
        leia(binario[i])

        se binario[i] = 1 entao
            res <- 1

            para j de 1 ate i faca
                res <- res * 2
            fimpara

            decimal <- decimal + binario[i] * res
        fimse
    fimpara

    escreval("Decimal:", decimal)
fimalgoritmo

Aula em vídeo#

Caso prefira também existe o conteúdo em forma de vídeo

Desafios#

Caso queira treinar um pouco mais você pode ver o(s) seguinte(s) enunciado(s):