Título: máscara de bits Publicado por: Joe Fraddy en 19 Febrero 2015, 23:47 pm Alguno entiende la máscara de bits??
Según una máscara de bits es una variable que te ayuda con las operaciones a nivel de bits. Una máscara de bits te ayuda a encender bits específicos, apagar otros, o a recoger datos de qué bits están encendidos o apagados en un entero. Esas son las instrucciones del ejercicio: 1. Escribí una función controla_bit4 que tome un número entero como entrada. 2. Debe revisar si el cuarto bit, comenzando desde la derecha, está encendido. 3. Si el bit está encendido, tu función debe devolver "on" (¡no mostrarlo!). 4. Si el bit está apagado, tu función debe devolver "off". Mi código es este: Código
Pero creo que no logro hacer bien las cosas, al parecer tengo un error lógico Título: Re: máscara de bits Publicado por: engel lex en 19 Febrero 2015, 23:51 pm debe ser el 4to bit, no el tercero, de resto el programa parece estar bien
por otro lado la funcion tiene un error... o imprimes dentro de la funcion o imprimes fuera de la funcion... el ultimo retorna "none" porque porque la funcion no retornó nada para imprimir... no uses print dentro de la funcion, sino return Título: Re: máscara de bits Publicado por: Joe Fraddy en 19 Febrero 2015, 23:54 pm Y eso como lo hago??? no entiendo bien este asunto de encender bits y apagar
Título: Re: máscara de bits Publicado por: engel lex en 20 Febrero 2015, 00:06 am dentro de la funcion cambia "print" por "return"
lo de "encender" y "apagar" bits, no lo veas literalmente... es simplemente colocar 1 o 0 en una posicion... el programa está bien... pero como te dije, estás probando el tercer bit Código
Título: Re: máscara de bits Publicado por: Joe Fraddy en 20 Febrero 2015, 04:00 am Pues no se si ya esta bien así:
Código
Me da la consola: Código: off Pero el ejercicio me es marcado erróneo con el siguiente mensaje: ¡Uy! Probá otra vez. Tu función falla en controla_bit4(0b0). Devuelve "None" en vez de devolver "off". ¿Que podrá estar mal? Título: Re: máscara de bits Publicado por: engel lex en 20 Febrero 2015, 04:09 am primero... repito...
¡Uy! Probá otra vez. Tu función falla en controla_bit4(0b0). Devuelve "None" en vez de devolver "off". ¿Que podrá estar mal? dentro de la funcion cambia "print" por "return" segundo... Citar 1. Escribí una función controla_bit4 que tome un número entero como entrada. 2. Debe revisar si el cuarto bit, comenzando desde la derecha, está encendido. 3. Si el bit está encendido, tu función debe devolver "on" (¡no mostrarlo!). 4. Si el bit está apagado, tu función debe devolver "off". "and" cuando se usa con binario puedes verlo como multiplicar 1 (1*1 = 1, el resto de combinaciones da 0) por lo tanto Código
es lo con lo contrario a lo que quieres... y lo que te dije... estás manejando el 3er bit no el 4to... siento que no me leen -.- Título: Re: máscara de bits Publicado por: Joe Fraddy en 20 Febrero 2015, 04:28 am Listo, cambié por return y modifique mask, y quedó, mi código es el siguiente:
Código
pero creo que aun no entiendo esto de los bits, hay alguna libro, documentación o paper que pueda leer que me ayude a comprender mejor este asunto de los bits??? Gracias!!! Título: Re: máscara de bits Publicado por: engel lex en 20 Febrero 2015, 04:52 am los bits son los 1 y 0 de la computadora... cada byte tiene 8 bits...
la cosa es que en bit hay 4 operaciones principales AND, OR, NOT y XOR es meramente lógico y se refleja en "tabla de verdad" como es logica, aquí la wiki sobre ello http://es.wikipedia.org/wiki/Conectiva_l%C3%B3gica (http://es.wikipedia.org/wiki/Conectiva_l%C3%B3gica) y sobre operadores a nivel de bit http://es.wikipedia.org/wiki/Operador_a_nivel_de_bits (http://es.wikipedia.org/wiki/Operador_a_nivel_de_bits) |