Olá Pessoal,
Precisei de uma função para retornar os 4 bits menos significativos e os 4 bits mais significativos de um byte e foi solucionado com a ajuda dos colegas em outro tópico através das funções highBits() e lowBits().
Seguindo as dicas dos colegas, para extrair os bytes individuais de uma variável de 32 bits, escrevi o código abaixo:
variável com 4 bytes: DDDDDDDD CCCCCCCC BBBBBBBB AAAAAAAA
//==========================
uint32_t byteD (uint32_t valor) {
return ((valor & 0xFF000000)>>24);
}
uint32_t byteC (uint32_t valor) {
return ((valor & 0x00FF0000)>>16);
}
uint32_t byteB (uint32_t valor) {
return ((valor & 0x0000FF00)>>8);
}
uint32_t byteA (uint32_t valor) {
return (valor & 0x000000FF);
}
Acho que poderia ficar numa única função, que acham?
Abçs,