elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Consulta Problema Con Bits - Cual es la respuesta correcta?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Consulta Problema Con Bits - Cual es la respuesta correcta?  (Leído 4,009 veces)
palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Consulta Problema Con Bits - Cual es la respuesta correcta?
« 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
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main()
  6. {
  7.    char letra='w';
  8.    int numero;
  9.  
  10.    numero=letra&(15<<4);
  11.  
  12.    printf("\nEl numero es %d",numero);
  13.  
  14.  
  15.  
  16.    return 0;
  17. }
  18.  

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
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main()
  6. {
  7.    char letra='w';
  8.    int numero;
  9.  
  10.    numero=(letra>>4)&15;
  11.  
  12.    printf("\nEl numero es %d",numero);
  13.  
  14.  
  15.  
  16.    return 0;
  17. }
  18.  



Entonces esa es mi duda, cual seria la respuesta correcta?


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Consulta Problema Con Bits - Cual es la respuesta correcta?
« Respuesta #1 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.


« Última modificación: 21 Octubre 2016, 09:35 am por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Re: Consulta Problema Con Bits - Cual es la respuesta correcta?
« Respuesta #2 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.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Consulta Problema Con Bits - Cual es la respuesta correcta?
« Respuesta #3 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.
« Última modificación: 21 Octubre 2016, 15:24 pm por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
palacio29

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Re: Consulta Problema Con Bits - Cual es la respuesta correcta?
« Respuesta #4 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.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Consulta Problema Con Bits - Cual es la respuesta correcta?
« Respuesta #5 en: 21 Octubre 2016, 15:25 pm »

De nadas  ::)
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[CONSULTA]Es correcta la conexión o no.
Redes
manya1cntimiento 3 2,886 Último mensaje 11 Septiembre 2011, 18:56 pm
por simorg
No se cual es mi puerto de enlaze correcta.
Seguridad
zyack 4 2,515 Último mensaje 25 Abril 2014, 00:20 am
por zyack
Encuesta averiguar respuesta correcta? « 1 2 »
Dudas Generales
Senior++ 11 10,968 Último mensaje 3 Enero 2015, 17:02 pm
por Flamer
El examen que ha dado la vuelta a España: ¿Es correcta la respuesta de este niño « 1 2 »
Foro Libre
El_Andaluz 18 7,979 Último mensaje 21 Octubre 2017, 21:40 pm
por #!drvy
El programa corre; pero en las 2 ultimas premisas no me da la respuesta correcta
Programación C/C++
Julia13 2 2,043 Último mensaje 29 Abril 2021, 21:12 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines