Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como insertar un bit

Estas en el tema de Como insertar un bit en el foro de C/C++ en Foros del Web. Muchanchos, como inserto un bit? Tengo el sgte. programa: Código: #include <stdio.h> void main() { char ch, i = 0; While (1) { ch = ...
  #1 (permalink)  
Antiguo 08/01/2007, 14:54
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Pregunta Como insertar un bit

Muchanchos, como inserto un bit?
Tengo el sgte. programa:
Código:
#include <stdio.h>

void main()
{
   char ch, i = 0;
   While (1)
   {
		ch = getchar();
		
		switch (c)
		{
			case '!': break;
			case 'f': i &= 1; break;
			case 'i': i &= 2; break;
			case 'l': i &= 4; break;
			case 'e': i &= 8; break;
		}
   }
    if ( i == 15) printf("\nVerno");
	else printf("\nNeverno");
}
Solo necesito saber si se presionaron las letras f, i, l, e.
Gracias
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #2 (permalink)  
Antiguo 08/01/2007, 16:57
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años
Puntos: 0
Re: Como insertar un bit

¿el bit que insertas es el para reprsentar al tecla presionada?
__________________
-> La duda adecuada es un buen comienzo <-
  #3 (permalink)  
Antiguo 08/01/2007, 17:13
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Como insertar un bit

Asi es. Necesito saber si se presionaron esas teclas. Cada bit representa a esas teclas.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 08/01/2007, 18:09
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Como insertar un bit

Por si te sirve,
El operador | sirve para asignar un bit.
i|=1 prende el primer bit, y en caso de que este prendido pues lo deja asi,
Pero, para saber si un bit esta prendido tienes que usar and &

if(i&1)Si el primer bit esta prendido...
if(i&2)Segundo bit.
if(i&4)Tercer bit
if(i&8)Cuarto bit.

Como te das cuenta son potencias de 2(sistema binario)

Para apagar un bit usas algo asi.
En un byte:

i&=0xFE; para el primer bit
i&=0xFD; para el segundo bit.

En realidad es 0xFF menos la potencia del bit.
0xFF-8 te apagaria el cuarto bit.

Espero que esa info te haya servido.

Saludos
  #5 (permalink)  
Antiguo 09/01/2007, 06:18
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Como insertar un bit

Con el codigo que tienes estas prendiendo el bit y apagando los demas, no se si sea esa la intencion...
Con eso prendes el primer bit y apagas el resto de ellos:
Cita:
i &= 1;
Y asi con cada uno de los restasntes....como dice Instru, si quieres "guardar" las 4 teclas sin apagar los demas bits usas:
Cita:
i |= 1;
Ahora, ¿me gustaria saber para que tienes el ciclo infinito?:
Cita:
while (1)
En ti codigo tienes la "W" en mayuscula, imagino que fue error de tipeo...jejeje...

Con ese codigo que tienes no creo que se llegue a imprimir lo que tienes al final:
Cita:
if ( i == 15) printf("\nVerno");
else printf("\nNeverno");
Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #6 (permalink)  
Antiguo 09/01/2007, 11:19
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: Como insertar un bit

Mira que os complicáis :P

¿Por qué no usas el propio switch para saber cuál se pulsó? Y en caso de que necesites saber sólo si se pulsó una de ellas, usa varias condiciones enlazadas con ||.
  #7 (permalink)  
Antiguo 09/01/2007, 11:56
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Como insertar un bit

El hizo una pregunta y le fue contestada..jejejeje....

Quizas quiere "recordar" cuales teclas de las que menciona se han pulsado y ademas apeovechar la oportunidad para trabajar con los operadores a nivel de bits...pero como no ha comentado nada....

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #8 (permalink)  
Antiguo 09/01/2007, 13:16
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Re: Como insertar un bit

Lo único que yo leo es que quiere saber qué caracter fue pulsado, almacenado en un char; y para eso no hace falta ninguna operación de bits :)

Si no es eso, pues que aprenda a preguntar mejor.
  #9 (permalink)  
Antiguo 09/01/2007, 13:25
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Como insertar un bit

Gracias amigos!
Como siempre, no me han defraudado. Lo que necesitaba era el OR bitwise.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #10 (permalink)  
Antiguo 09/01/2007, 15:54
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Como insertar un bit

Cita:
Con el codigo que tienes estas prendiendo el bit y apagando los demas, no se si sea esa la intencion...
Con eso prendes el primer bit y apagas el resto de ellos:
Cita:
i &= 1;
estas un poco equivocado amigo _Lucifer_
Con i&=1 lo unico que haces es apagar todos los bits menos el primero. Si el primero esta pagado, entonces no se prende y el resultado es 0.

Saludos
  #11 (permalink)  
Antiguo 09/01/2007, 16:12
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Como insertar un bit

Estas en lo cierto...
Gracias por la correccion...se me paso ese detalle, apagas todos menos el primero, que conserva su estado.
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #12 (permalink)  
Antiguo 09/01/2007, 17:22
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años
Puntos: 0
Re: Como insertar un bit

Bueno en C++ puedes utilizar campos de bits, seria mas facil asignar y verificar valores, dentro de un switch como lo dice MaxExtreme.
__________________
-> La duda adecuada es un buen comienzo <-

Última edición por arm; 09/01/2007 a las 17:31
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:34.