Vetor - Trabalhar e Printar elementos individuais

1. Vetor - Trabalhar e Printar elementos individuais

Pedro Henrique Rissato
pedrorissato

(usa Fedora)

Enviado em 10/10/2013 - 23:57h

Olá a todos!!!!

Gostaria que alguém de vocês pudesse me ajudar em algo.

Estou fazendo uma conversão de número binário de 8bits para decimal.

Cada aluno tem feito do seu jeito, a maioria tem utilizado desta forma:

for(i = 1; n > 0; i*=2){
x = (n % 10) * i;
numeroDecimal += x;
n /= 10;

Queria fazer algo diferente, mas na minha cabeça ( xD ) mais fácil, gostaria de criar um vetor com 8 posições, armazenar cada digito binário dentro e depois, caso o digito fosse 1 atribuir um valor novo para aquela posição no vetor.

Utilização o método de conversão básico de binário para decimal:

Tabela: ... 128, 64, 32, 16, 8, 4, 2, 1
ex binário 0 0 1 1 0 1 0 1
Decimal = 53

Para isto criei um v[7] e estou colocando nele o número binário, depois jogo o número binário nele e depois faria um teste para verificar se o número eh 0 ou 1 e atribuir os valores da tabela, e por fim somaria os valores atribuídos, dando o número decimal.

Segue abaixo o código:

#include <stdio.h>

main(){



int y, numero;
int v[7];

printf("Entre com o numero binario ");
scanf("%d", &y);

v[7]=y;

if (v[0]==1)
v[0]=1;
if (v[1]==1)
v[1]=2;
if (v[2]==1)
v[2]=4;
if (v[3]==1)
v[3]=8;
if (v[4]==1)
v[4]=16;
if (v[5]==1)
v[5]=32;
if (v[6]==1)
v[6]=64;
if (v[7]==1)
v[7]=128;

//numero = v[0] + v[1] + v[2];

printf("%d\n", v[0]);

getchar();
}

Obviamente existem várias formas de fazer isto, contudo gostaria de fazer assim, mas existem (além de vários outros problemas que não enxergo) dois que consigo visualizar:

1) Neste exemplo de impressão da posição v[0] ele imprime o endereço da memória e não do vetor;
2) No v[7] obviamente ele vai substituir tudo do vetor, teoricamente.

Tentei trabalhar com ponteiros, mas somente tem funcionado se eu atribuir os elementos do vetor na variável v. Quanto peço pra entrar o numero e aponto os vetores, ele volta a printar o endereço da memória, mesmo com pointer *...

Se alguém puder ajudar, eu agradeço xD!!!!


  


2. Vetor - Trabalhar e Printar elementos individuais

Daniel Zaia Manzano
dzm_linux

(usa Debian)

Enviado em 11/10/2013 - 11:25h

Amigo,

Utilizei a sua ideia e escrevi em python:



binario = raw_input("Digite um numero binario: ")

bin_dec = [128,64,32,16,8,4,2,1]
resultado = 0
for x in range(len(binario)):
if binario[x] == "1":
resultado += bin_dec[x]
print resultado



Espero que ajude de alguma forma.

Abraços


3. Re: Vetor - Trabalhar e Printar elementos individuais

Pedro Henrique Rissato
pedrorissato

(usa Fedora)

Enviado em 13/10/2013 - 23:18h

dzm! Obrigado pelo retorno. Ajudou bastante sim!!! Agora sei que vou necessitar de 2 vetores para fazer a soma ou reconhecimento dos valores digitados.

Demorei pra responder pois somente tenho os fds livres e fiquei pesquisando como fazer. Ainda não encontrei uma solução... cheguei bem perto... mas nada ainda.. quando conseguir finalizar eu posto o resultado aqui. Por enquanto, agradeço novamente o retorno.


4. Vetor - Trabalhar e Printar elementos individuais

Daniel Zaia Manzano
dzm_linux

(usa Debian)

Enviado em 14/10/2013 - 11:55h


Amigo,

Lembre-se que o código que te passei faz apenas a conversão de binário para decimal. O processo reverso requer um pouco mais de astúcia. :)

Sempre que precisar, pode contar conosco.

Abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts