Ir ao conteúdo
  • Cadastre-se

RomuloS

Membro Pleno
  • Posts

    42
  • Cadastrado em

  • Última visita

Reputação

0
  1. LNW, Cara foi difícil entender essa parada de divisão euclidiana,mas eu entendi. Como a divisão é por 2 então o resto vai ser no máximo 1 certo? Se fosse um numero maior que 2 já não ia dar, certo? Mas o seu códico ta usando a recursividade corretamente?
  2. Cara não deu de entende varias coisas no teu códico. Essa parte eu não entendi: if(binary.size() < 8) //AQUI PREENCHE PARA COMPLETAR UM BYTE { while(binary.size() < 8) binary.push_back(0); } Ele mostra no resultado mais 0 do que devia. E o motivo de eu ter trocado;quando o resto for 0 colocar 1 e quando der resto diferente de 0 colocar 0, é justamente pra não ter que inverter o vector entendeu?
  3. Cara valeu. Mas tem varias coisas q eu não entendi Por que quando eu passo o vector por parâmetro ele já não passa a referencia como se fosse um array? Por que o flag é n > 1 e não n > 0? E por que a variável inteira d? Por que a variável inteira não pega o resto da divisão? tipo 7/2 da 3,5 ele deveria receber o 5 não 1; sempre quando da resto ele recebe 1? se não tem resto recebe 0? porque? porque do meu jeito ta errado? if(n % 2 == 0){binary.push_back(1);}else{binary.push_back(0);}}
  4. Estou tentando desenvolver uma função recursiva para transformar um inteiro em numero binário e colocando o resultado em um vector usando a seguinte lógica: A cada chamada da função, divido o numero por 2, se o resto for igual a 0, insiro um 0 no vector, se não, coloco 1 no vector. Logo em seguida quando a função termina,eu mostro o conteúdo do vector. porém, nada é mostrado na tela. Por quê? #include <iostream> #include <cstdio> #include <cstdlib> #include <string> #include <vector> using namespace std; void itob(short n,vector<int> binary); int main() { short n; vector <int> binary; cin>>n; itob(n, binary); for(int i = 0; i < binary.size(); i++) { cout<<binary.at(i)<<" "; } return 0; } void itob(short n,vector<int> binary) { if(n > 0 ) { if(n % 2 == 0) { binary.push_back(1); } else { binary.push_back(0); } } itob(n-1,binary); }

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...