Logo Passei Direto
Buscar
m valor binário pode ser representado no padrão conhecido como BCD 8421 (Binary-coded Decimal - Decimal Codificado em Binário). Nesta codificação, os valores 8421 representam o resultado de 2i, onde i denota a posição do dígito dentro da palavra. Por exemplo, 1001(2) = 1*8 + 0*4 + 0*2 +1*1 = 9(10). Para essa questão, suponha o seguinte código recursivo: #include #include int Bin2Dec(char bin[],int pos,int exp) { if(____) return 0; return (bin[pos]-48)*exp + Bin2Dec(bin,____,____); } int main() { char binario[9]="10011101"; //valor em decimal = 157 printf("Valor convertido: %d", Bin2Dec(binario,strlen(binario)-1,1)); return 0; } Assinale a opção abaixo que contenha os trechos de código para preencher as lacunas:
User badge image
Raphael

há 10 meses

Respostas

User badge image

Ed Verified user icon

há 10 meses

Para resolver essa questão, precisamos entender como funciona a conversão de um número binário para decimal usando recursão. O código apresentado tem algumas lacunas que precisam ser preenchidas. Vamos analisar as lacunas: 1. A primeira lacuna deve ser preenchida com uma condição de parada para a recursão. Quando a posição (`pos`) for menor que 0, significa que já processamos todos os dígitos do número binário. Portanto, a condição correta seria: ```c if (pos < 0) return 0; ``` 2. A segunda e terceira lacunas devem ser preenchidas para continuar a recursão. Precisamos diminuir a posição (`pos`) e multiplicar a base (que é 2) pela potência correspondente. Assim, as lacunas podem ser preenchidas da seguinte forma: - Para a segunda lacuna, devemos passar `pos - 1` para continuar a recursão. - Para a terceira lacuna, devemos passar `exp * 2` para multiplicar a base. Portanto, as lacunas ficariam assim: ```c if (pos < 0) return 0; return (bin[pos]-48)*exp + Bin2Dec(bin, pos - 1, exp * 2); ``` Agora, se você tiver opções para preencher essas lacunas, escolha a que contém essas expressões. Se precisar de mais ajuda, é só avisar!

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina