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

Conversão de 8 bits de 1 e 0 para 1 bit


gilfj

Pergunta

Boas,

Estou a fazer um projeto em c++ e ros e tenho uma variavel que é um array com tamanho 8 de uint8 composto por 0's e 1's. Ou seja uint8[8] motores = [10011000], que corresponde a ligar motor 1, desligar motor 2, desligar motor 3, ligar motor 4, etc etc.

A questão é que cada um dos numeros acima (1/0) é um uint8, ou seja, ali tenho 8 uint8 de 8bits cada, logo tenho 64bits (visto que o nº 1 equivale a [0000001] e 0 a [00000000]).

Mais tarde queria colocar esses 1's e 0's numa variavel long para fazer uma mascara. 

O que eu queria saber é se existe alguma maneira de converter os meus 64 em 8 bits, ou seja, o 1 em vez de ser [00000001] passaria a ser simplesmente 1.

Não sei se fui muito clara, mas como ja ando algum tempo de volta disto, cada vez esta a ficar mais confuso.

 

Muito obrigada!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Acho que a maneira mais simples seria deslocar os bits pra esquerda, pra posicionar na casa correta e somar. Mas você está armazenando o bit menos significativo na posição 0 ou na posição 7 do vetor?

 

Assumindo que o menos significativo está na posição 0 ficaria algo assim:

uint8_t byte = motores[0] + (motores[1] << 1) + (motores[2] << 2) + (motores[3] << 3) + (motores[4] << 4) + (motores[5] << 5) + (motores[6] << 6) + (motores[7] << 7);

 

ou

 

int i;
uint8_t byte = 0;
for (i = 0; i<8; i++)
    byte += motores[i] << i;

 

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...