Ir para conteúdo
Fórum Script Brasil
  • 0

linguagem C de decimal pra binária


Katelyn Marie

Pergunta

estou tentando resolve essa questao mais não estou conseguindo voces pode me ajuda ?

Escreva um programa na linguagem C, que recebe um número decimal do usuário, em seguida o programa deverá converter esse número para base binária e imprimir as seguintes informações na tela: a. O número representado na forma binária

b. Quantos dígitos o número possui na base decimal

c. Quantos dígitos o número possui na base binária

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
#include <stdio.h>

int digitosEmBaseDecimal (int n)
{
	if (!n)
		return 0;
	
	int nDigitos = 1;
	
	while (n/=10)
		nDigitos++;
	
	return nDigitos;
}

void maneira1 (int n)
{
	int size = sizeof (int) * 8 - 1;//tamanho do int vezes a quantia de bits
	int digBin = 0;//quantia de digitos binarios
	
	for (; size >= 0; size--)
	{
		printf("%d", (n >> size)&1);
		
		if ( ((n >> size)&1) && !digBin )
			digBin = size+1;
		
		//Aparencia
		if ( !((size)%4) )//espaco de quatro em quatro digitos
			printf(" ");
		
		if ( !((size)%16) )//linha nova a cada 16 digitos
			printf("\n");			
	}
	
	printf("Possui %d digitos em decimal\n", digitosEmBaseDecimal (n));
	printf("Possui %d digitos em binario\n", digBin);
}

void maneira2 (int n)
{
	int v[32] = {0};//vetor que vai armazena os numeors em binarios
	int tmpN = n;//pra envia pro contador de digitos decimais
	int digBin = 0;//digitos binarios
	int i = 0;
	while (n)
	{
		v[i++] = n%2;
		
		n /= 2;
	}
	
	for (i = 31; i >= 0; i--)
	{
		printf ("%d", v[i]);
		
		if (v[i] && !digBin)
			digBin = i+1;
		
		//Aparencia
		if ( !((i)%4) )//espaco de quatro em quatro digitos
			printf(" ");
		
		if ( !(i%16) )//linha nova a cada 16 digitos
			printf("\n");			
	}
	printf("Possui %d digitos em decimal\n", digitosEmBaseDecimal (tmpN));
	printf("Possui %d digitos em binario\n", digBin);
}

int main()
{
	int n;
	
	//para encerrar pressione ctrl+c
	while (1)
	{
		scanf ("%d", &n);
		
		maneira2 (n);
	}
	
	return (0);
}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...