Tengo una duda con respecto a bits en C.
Me piden que haga un programa en donde cada persona ingresada tenga un numero de categoria.
Es decir..
Persona 1 = Horacio
Categoria= W
El problema es que la categoria no me la dan con numeros y me piden que halle la categorai, copio textual "El numero de categoria se encuentra dentro del unsigned char en los cuatro bits mas significativos(los de la izquierda). Entonces me piden que a traves de la letra que ingresaron, que con operaciones de bits, halle la categoria.
Entonces yo hago esto
Código
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { char letra='w'; int numero; numero=letra&(15<<4); return 0; }
Osea, agarro la letra, uso una mascara de 15 y la corro cuatro lugares y me evalua en esos 4 bits si estan prendidos o no.
El resultado de "w" seria 112, seria la categoria.
El problema es que no se si esa es la categoria correcta.
Porque yo puedo hacer que esos 4 bits mas significativos ponerlos los 4 en la posicion menos significativa y aplicar la mascara de 15, y dejarlos ahi y me daria una categoria 7.
Código
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { char letra='w'; int numero; numero=(letra>>4)&15; return 0; }
Entonces esa es mi duda, cual seria la respuesta correcta?