Ir ao conteúdo
  • Cadastre-se

C converter numero binario para decimal em vetor


Tamara Valesi

Posts recomendados

Gente estou parada mais de horas nesse programa olha o anunciado 

 Escreva um procedimento que preencha um vetor de números inteiros de tamanho tam, apenas com os números zero ou um. Depois informe o número binário resultante deste preenchimento e o valor correspondente em decimal.

void converteBinario( int bin[], int tam)

 

quando faço o codigo ele lê da direita para esquerda, mas para converter eu preciso ir da esquerda para direita

estou tentando inverter o vetor mas n esta indo 

 

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include <locale.h>

#define t 8

int main()
{
    setlocale(LC_ALL,"portuguese");
    int bin[t], dec = 0, i,j,pot;
    int invbin[t],final;
    
    
    
    printf("\nInsira o numero binario separado por espaço: \t");
    for(j=0;j<t;j++){
        scanf("%d", &bin[j]);
    }
    printf("\nO número binario é : ");
    for(i=0;i<t;i++){
      printf("%d",bin);
    }
    printf("\n");
      

    
    for(i=0;i<t;i++){
        if(bin==1){
        
            dec=dec*bin+pow(2, i);
        }
    }
    
    printf("a conversão do numero binario para decimal : %d \n",dec );
}

adicionado 14 minutos depois

pessoal ja consegui 

...

 

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include <locale.h>

#define t 8

int main()
{
    setlocale(LC_ALL,"portuguese");
    int bin[t], dec = 0, i,j,p;
    int invbin[t],final;
    
    
    
    printf("\nInsira o numero binario separado por espaço: \t");
    for(j=0;j<t;j++){
        scanf("%d", &bin[j]);
    }
    printf("\nO número binario é : ");
    for(i=0;i<t;i++){
      printf("%d",bin);
    }
    printf("\n");
      
    final=t-1;
    for(p=0;p<t;p++){
        invbin[p]=bin[final];
        final--;
    }
    
    for(i=0;i<t;i++){
        if(invbin==1){
        
            dec=dec*invbin+pow(2, i);
        }
    }
    
    printf("a conversão do numero binario para decimal : %d \n",dec );
}

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Tamara Valesi     você pode colocar o loop para ir de trás pra frente ,  " DownTo "  ,  e o vetor precisa da posição ,

então seu código poderia ser assim  :

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include <locale.h>
#define t 8
int main(){
    setlocale(LC_ALL,"portuguese");
    int bin[1000],dec=0,m=1,i,j,pot,tam;
    int invbin[t],final;
    printf("informe o tamanho do vetor ");
    scanf("%d",&tam);
    printf("\nInsira o numero binario 1  ou 0 : ");
    for(j=0;j<tam;j++){
        scanf("%d", &bin[j]);
    }
    printf("\nO número binario é : ");
    for(i=0;i<tam;i++){
      printf("%d",bin[i]);/* faltou a posição no vetor */
    }
    printf("\n");
    for(i=tam-1; i>-1; i--){
        if( bin[i] == 1 ){
            dec += bin[i]*m;
        }
        m *= 2;
    }
    printf("a conversão do numero binario para decimal : %d \n",dec );
}

@Tamara Valesi

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...