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