Gostaria de saber se existe alguma forma de eu tratar dados de uma forma diferente da tradicional. Digamos, a unidade mais básica(exceto o bit) de dado é o byte. Em c/c++ os dados são tratados sempre como bytes ou múltiplos dele, quando você declara um int, char, e por aí vai.
Mas e se eu quisesse criar um programa que escreve em um arquivo e lê dele, mas sempre de 5 em 5 bits. Ou seja, cada dado agora é representado por 5 bits. Tem como fazer isso ou estou preso aos 8 bits tradicionais?
O que me confunde a cabeça é que neste exemplo, digamos que eu queira representar qualquer coisa no primeiro "byte"(que agora tem 5bits), ainda restarão 3 bits(considerando o byte tradicional) que seria parte de um segundo dado. Eu obteria os dois bits restantes no próximo byte tradicional. Como fazer esse tratamento é que me deixa confuso.