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


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  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,555 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 ajeno al tiempo
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


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 ajeno al tiempo
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


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 ajeno al tiempo
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


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 3,435 Último mensaje 11 Septiembre 2011, 18:56 pm
por simorg
No se cual es mi puerto de enlaze correcta.
Seguridad
zyack 4 3,042 Último mensaje 25 Abril 2014, 00:20 am
por zyack
Encuesta averiguar respuesta correcta? « 1 2 »
Dudas Generales
Senior++ 11 12,098 Ú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 9,315 Ú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,662 Ú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