Título: Consulta Problema Con Bits - Cual es la respuesta correcta? Publicado por: palacio29 en 21 Octubre 2016, 05:16 am Hola
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
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
Entonces esa es mi duda, cual seria la respuesta correcta? Título: Re: Consulta Problema Con Bits - Cual es la respuesta correcta? Publicado por: Eternal Idol en 21 Octubre 2016, 09:31 am 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. Si partis de w: 119d, 0x77, 01110111b el resultado correcto es 00000111b es decir 7. Con el desplazamiento a derecha lo conseguis, no se para que intentas usar una mascara en primer lugar (salvo que estes probando con codigo donde el MSB este a la derecha y no a la izquierda). PD. No crees mas hilos sobre manipulacion de bits, ya tenes dos. Título: Re: Consulta Problema Con Bits - Cual es la respuesta correcta? Publicado por: palacio29 en 21 Octubre 2016, 15:08 pm Si partis de w: 119d, 0x77, 01110111b el resultado correcto es 00000111b es decir 7. Con el desplazamiento a derecha lo conseguis, no se para que intentas usar una mascara en primer lugar (salvo que estes probando con codigo donde el MSB este a la derecha y no a la izquierda). PD. No crees mas hilos sobre manipulacion de bits, ya tenes dos. Disculpa, pense que sabia el tema pero tenia esta duda. No logro entender porque se pasan los 4 bits totalmente hacia la derecha, porque si los paso a la derecha me da un 7 y si yo paso los 4 bits mas significativos a la derecha, hago una mascara y luego los paso nuevamente hacia los bits mas significativos(hacia su posicion inicial), me daria un 112. Título: Re: Consulta Problema Con Bits - Cual es la respuesta correcta? Publicado por: Eternal Idol en 21 Octubre 2016, 15:21 pm Para que te de 112 no estas tomando 4 bits sino 8:
01110000b Con 4 bits podes expresar un conjunto de numeros que va de 0 a 15. 0000b 1111b Por eso en el otro hilo te pregunte el tamaño del numero. PD. Si quisieras obtener 112 no haria falta mover nada simplemente usarias la mascara 0xF0. Título: Re: Consulta Problema Con Bits - Cual es la respuesta correcta? Publicado por: palacio29 en 21 Octubre 2016, 15:24 pm Para que te de 112 no estas tomando 4 bits sino 8: 01110000b Con 4 bits podes expresar un conjunto de numeros que va de 0 a 15. 0000b 1111b PD. Si quisieras obtener 112 no haria falta mover nada simplemente usarias la mascara 0xF0. Gracias, ahi ya entendi. Título: Re: Consulta Problema Con Bits - Cual es la respuesta correcta? Publicado por: Eternal Idol en 21 Octubre 2016, 15:25 pm De nadas ::)
|