Ir ao conteúdo
  • Cadastre-se
Venice

Criar vetor de valores bit à bit

Recommended Posts

Boa tarde pessoal,

 

Eu preciso fazer um vetor "de bits" com variáveis de diferentes tamanhos, porém, eu preciso que os valores fiquem um ao lado do outro. Os valores das variáveis são:

 

variavel1: inteiro de 16 bits

variavel2: inteiro de 17 bits

variavel3: inteiro de 28 bits

variavel4: inteiro de 29 bits

variavel5: inteiro de 8 bits

 

Na verdade a variavel4 por exemplo, de 29 bits, será declarada como unsigned long int, com 32 bits, só que como serão usados apenas 29 bits, eu preciso descartar esses 3 bits que estão à toa. Dessa forma eu preciso formar um vetor, onde as variáveis fiquem uma lado ao lado da outra (a nível de bit), por exemplo: a variavel1 tem 16 bits, então no meu vetor "de bits" ela vai estar ocupando as posições 0 à 15. Em seguida ao inserir a variavel2, com 17 bits, é preciso que ela inicie na posição 16 e vá até a 32. Em seguida a variavel3 é inserida entre as posições 33 e 60 (já que tem 28 bits). Em seguida vem a variavel4 que é inserida entre as posições 61 e 79 (já que tem 29 bits). Por último a variavel5 é inserida entre as posições 80 e 87 (8 bits).

 

A questão é, como eu posso fazer isso? Tentei criar um vetor de char (8 bits), e ir alocando nele, mas estou encontrando problema em adicionar os bytes quebrados (tipo a variavel2, variavel3 e variavel4). Alguém sabe como eu poderia

desenvolver esse algoritmo?

 

Obrigado desde já.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em C, partindo para campo de estruturas de dados, tipo struct tem a propriedades de criar

Campos de bits de tamanhos diferentes; bits Fields.

 

 

 

 

 

 

Este exemplo define uma matriz de estruturas bidimensional nomeada screen.

struct{  unsigned short icon : 8;  unsigned short color : 4;  unsigned short underline : 1;  unsigned short blink : 1;} screen[25][80];

Fonte: MSDN

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×