Explore as questões disponíveis e prepare-se para seus estudos!
A função C++ a seguir é usada em um aplicação desenvolvida com Arduino:
int8_t opbits(uint8_t x1){
uint8_t x2 = 0x55;
uint8_t x3 = 0x03;
uint8_t x4 = 0x08;
return ~(((x1 ^ x2) << x3) % x4);
}
Esta função é chamada no código a seguir:
uint8_t x1 = 0xaa;
int16_t y = 10*opbits(x1);
Serial.println(y)
Qual será o valor impresso (decimal) por este código?
As operações de manipulação de bits são fundamentais em diversas áreas da computação, incluindo a programação em C para sistemas embarcados como na plataforma Arduino. Elas permitem otimizações de desempenho, controle direto do hardware e economia de recursos, como memória e processamento. Considere as seguintes operações de manipulação de bits para setar (mudar estado para 1), limpar (mudar estado para 0) e alternar (se o bit for 0, vai para 1, se for 1, vai para 0) um bit específico “bit_x” em uma variável “Y”. Qual alternativa está corretamente associada a cada operação?