#include int main() { //0b... siginifica o inicio de um numero binario //Obs: essa operacao transforma o primeiro valor utilizado no int em sizeof(int) - 1 int chave; int Index = 5; //0b101 char c = 'a'; //0b1100001 int mask = 0b11111111; int char_recuperado; chave = Index; // 0b...000 00000101 printf("A variavel chave contem o valor de: %d\n", chave); //5 chave = chave << 8; // 0b...101 00000000 // 8 bits shiftados pra esquerda printf("chave contem o valor de: %d apos o shift de 8 bits\n", chave); //1280 chave += c; // 0b...101 01100001 // char colocado nas posicoes shiftadas do int printf("chave contem o valor de: %d apos a soma com o valor do char\n", chave); //1377 char_recuperado = chave & mask; //operacao de AND nos bits das duas variaveis que devolve os 8 primeiros bits com o resto 0 // 0b...000 01100001 printf("o valor do char recuperado é: %d que é transformado no char: %c\n", char_recuperado, char_recuperado); //97 ou 'a' chave = chave >> 8; // faz o shift de 8 bits para direita que retorna o valor 0b ...000 00000101 printf("o valor da chave apos a volta do shift de 8 bits: %d", chave); //5 return 0; }