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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Establecer el estado de un determinado bit Encendido/Apagado [C]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Establecer el estado de un determinado bit Encendido/Apagado [C]  (Leído 5,052 veces)
DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Establecer el estado de un determinado bit Encendido/Apagado [C]
« en: 16 Febrero 2015, 22:07 pm »

Hola gente.-
El caso es que dado un número ingresado por teclado, y la posición del bit que se desea saber el estado, mostrar Encendido/Apagado, practique y busque información en la web pero no pude dar con la solución.-
Lo que realmente me complica es el patrón para transformar por ej. Si el ingreso  de la posición es 5 la debo transformar a 16 para establecer la máscara, pero no lo encuentro, tal vez esté errado en el concepto, no sé.- 



Código
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4. unsigned int numero, mask, ch;
  5.  
  6. printf("\n\n Ingrese un entero sin signo...............:");
  7. scanf("%d", &numero);
  8. while ((ch = getchar()) != EOF && ch != '\n');
  9.  
  10. printf("\n\n Indique que bits desea saber el estado....:");
  11. scanf("%d", &mask);
  12. while ((ch = getchar()) != EOF && ch != '\n');
  13.  
  14. mask <<= 2;
  15.  
  16. printf(numero & mask ? "\n Encendido" : "\n Apagado");
  17.  
  18. return 0;
  19. }

Como siempre muchas gracias por el tiempo que le dediquen.-   

Saludos.
Daniel


En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Establecer el estado de un determinado bit Encendido/Apagado [C]
« Respuesta #1 en: 16 Febrero 2015, 22:28 pm »

No conozco el tema me puedes dar mas informacion para ayudarte

saludos...


En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: Establecer el estado de un determinado bit Encendido/Apagado [C]
« Respuesta #2 en: 16 Febrero 2015, 22:48 pm »

No conozco el tema me puedes dar mas informacion para ayudarte

Hola crack81.-
En primer lugar gracias por ocuparte, te dejo un ej.

312 en decimal ==> 100111000 en binario.-
Como puedo hacer para mostrar el estado del bits 5 en este caso encendido.-
Espero  que ahora puedas ayudarme.-

Saludos.
Daniel
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Establecer el estado de un determinado bit Encendido/Apagado [C]
« Respuesta #3 en: 16 Febrero 2015, 23:05 pm »

No te entiendo muy bien pero si quieres comprobar si un bit esta activo puedes hacer algo como esto:
Código
  1. int bytes = 0x00100100;//6 activo
  2. if((bytes) & (1 << 0x00000100)){
  3.   \\6 bytes activo
  4. }
  5.  

Para activar uno:

Código
  1. int bytes = 0x00100100;
  2. int bytes2 = bytes | 0x1;
  3.  

Saludos
En línea

Blaster

Desconectado Desconectado

Mensajes: 190


Ver Perfil
Re: Establecer el estado de un determinado bit Encendido/Apagado [C]
« Respuesta #4 en: 16 Febrero 2015, 23:42 pm »

312 en decimal ==> 100111000 en binario.-
Como puedo hacer para mostrar el estado del bits 5 en este caso encendido.-

Solo necesitas asignar a mask el resultado de desplazar 1 a la posición donde quieres verificar el estado del bit .

Código
  1. int pos = 5, mask = 1 << pos, numero = 312;
  2.  
  3. if(numero & mask)
  4.   puts("Encendido");
  5. else
  6.   puts("Apagado");
 

Un Saludo
En línea

DanielPy

Desconectado Desconectado

Mensajes: 145



Ver Perfil
Re: Establecer el estado de un determinado bit Encendido/Apagado [C]
« Respuesta #5 en: 17 Febrero 2015, 02:11 am »

Hola.
Patilanz, gracias por la ayuda, no pude aplicar tú código porque en ese momento estaba ocupado y al consultar el foro encontré lo de Blaster y me saltee el tuyo.-
Blaster, gracias amigo funciona a la perfección, casi te consulto porque para mí el bits más a la derecha empezaba en uno y parece que comienza en cero.-

Código
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4. int pos = 0, mask = 1, numero = 312, i;
  5.  
  6. printf("\n\n 312 ==> 100111000\n\n");
  7. for(i=0; i<9; i++){
  8. mask = 1 << pos;
  9. if(numero & mask)
  10. printf("\n bit %d ==> Encendido", i);
  11. else
  12. printf("\n bit %d ==> Apagado", i);
  13. pos++;
  14. }
  15. return 0;
  16. }



Saludos.
Daniel
En línea

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MOD] hora exacta ordeandor encendido y apagado
Windows
aloneee 6 8,151 Último mensaje 5 Marzo 2011, 23:01 pm
por aloneee
Necesito un Router ADSL2+ con boton de encendido/apagado de WIFI
Redes
andrus1969 7 5,579 Último mensaje 27 Marzo 2012, 09:25 am
por andrus1969
Sobre la frecuencia de "Encendido/Apagado" de un disco duro « 1 2 »
Hardware
Eleкtro 13 11,805 Último mensaje 27 Mayo 2013, 15:14 pm
por z3nth10n
Encendido y apagado automatico
Windows
quetzalcoatl67 4 3,964 Último mensaje 31 Julio 2013, 06:01 am
por 1mpuls0
Cómo asignar varias funciones de encendido y apagado a un único estado?
Programación C/C++
dominguero 1 2,138 Último mensaje 27 Diciembre 2016, 14:11 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines