Um problema típico em ciência da computação consiste em converter um número da sua forma decimal para a forma binária. Por exemplo, o número 12 tem sua representação binária igual a 1100. A conversão entre sistemas numéricos é feita com base em algumas regras e serve para que se obtenha o valor de um elemento no sistema numérico mais adequado a cada situação. Entre os sistemas numéricos mais utilizados na computação, há o binário, decimal, octal e hexadecimal. Cada um destes apresenta sua própria faixa de valores possíveis, e cada um possui uma aplicação especifica dentro da ciência da computação. Você deve elaborar um algoritmo que realize a conversão entre sistemas numéricos. O programa deve receber um número em um sistema escolhido e realizar a mudança para outro sistema escolhido. O programa deve abordar os quatro sistemas numéricos descritos no enunciado. Utilize funções e/ou procedimentos com passagem de parâmetros em sua solução.
Boa noite Rafael Silva beleza??
Em resposta ao seu post eu desenvolvi um script em php e html para resolver boa parte do problema proposto.
Ele faz o seguinte: O usuário digita um valor em decimal e escolhe pra qual forma deseja converter.
HTML
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Converter</title>
<!-- Estilo -->
<link href="_css/estilo.css" rel="stylesheet">
<body>
<div>
<form method="get" action="converter.php">
Número:
<input type="number" name="num"/><br>
<fieldset><legend>Converter valores</legend>
<input type="radio" name="oper" id="binario" value="1" checked>
<label for="binario">Binário</label>
<input type="radio" name="oper" id="decimal" value="2">
<label for="decimal">Decimal</label>
<input type="radio" name="oper" id="octal" value="3">
<label for="octal">Octal</label>
<input type="radio" name="oper" id="hexadecimal" value="4">
<label for="hexadecimal">hexadecimal</label>
</fieldset>
<input type="submit" class="botao" value="calcular"/>
</form>
</div>
</body>
</html>
PHP
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Switch</title>
<!-- Estilo-->
<link href="_css/estilo.css" rel="stylesheet">
<body>
<div>
<?php
$numero = isset($_GET["num"]) ? $_GET["num"] : 0;
$operador = isset($_GET["oper"]) ? $_GET["oper"] : 1;
switch ($operador) {
case 1:
$r = decbin($numero);
break;
case 2:
$r = $numero;
break;
case 3:
$r =decoct($numero);
break;
case 4:
$r= dechex($numero);
}
echo"O resultado da operação solicitada foi <span class='foco'>$r</span>";
?>
<br><br><a href="javascript: history.go(-1)" class="botao">Voltar</a>
</div>
</body>
</html>
É isso pessoal. Espero ter ajudado em alguma coisa.
Para responder essa pergunta devemos colocar em prática nosso conhecimento sobre Algoritmo e Estrutura de Dados.
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void decimal_to_octal(int num) {
int result[15] = {};
int i = 0, j = 0;
if(num >= 8) {
printf("Decimal: %d -> Octal: ", num);
while(num >= 8) {
result[i++] = num % 8;
num = num ⁄ 8;
}
result[i] = num;
⁄⁄ Imprimindo o valor invertido sem os zeros à esquerda
for(j = i; j >= 0; j--) {
printf("%d", result[j]);
}
printf(" ");
} else {
printf("Decimal: %d -> Octal: %d ", num, num);
}
}
void decimal_to_binario(int num) {
char b[20];
itoa(num, b,2); ⁄⁄Converte para base 2
printf(" O numero %d em binario e: %s",a,);
}
void decimal_to_hexa(int num){
int q, resto, i;
q = num ⁄ 16;
resto = num % 16;
numEntrada ⁄= 16;
switch(resto){
case 10:
strcat(hexa, "A");
break;
case 11:
strcat(hexa, "B");
break;
case 12:
strcat(hexa, "C");
break;
case 13:
strcat(hexa, "D");
break;
case 14:
strcat(hexa, "E");
break;
case 15:
strcat(hexa, "F");
break;
case 16:
strcat(hexa, "G");
break;
default:
sprintf(getInt, "%i", resto);
strcat(hexa, getInt);
}
while(q != 0);
for(i=strlen(hexa); i >= 0; i--){
printf("%c", hexa[i]);
}
}
int main(void) {
int num, a;
printf("Digite um numero em decimal: ");
scanf("%d",&num);
printf("Escolha a base que deseja que o numero seja convertido ");
printf("1_ Binario. ");
printf("2_ Octal. ");
printf("3_ Hexadecimal. ");
scanf("%d",&a);
if(a==1){
decimal_to_binario(num);
}
else if(a==2){
decimal_to_octal(num);
}
else if(a==3){
decimal_to_hexa(num);
}
else{
printf("Não existe o código digitado.");
}
return 0;
}
Portanto, o algoritmo acima apenas permite que o usuário converta de decimal para as outras 3 bases. Porém, caso queira que uma base seja escolhida para ser convertida para outra base de desejo do usuário, recomenda-se converter o algarismo inserido pelo usuário e convertido para decimal e em seguida convertido para a base escolhida, pois assim o código não fica muito maior, facilitando na hora de programar.
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar