Autor
|
Tema: máscara de bits (Leído 4,034 veces)
|
Joe Fraddy
Desconectado
Mensajes: 277
|
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: def controla_bit4(entero): mask=0b0100 onoff=mask & entero if onoff > 0: print "on" else: print "off" num=0b1100 print controla_bit4(num)
Pero creo que no logro hacer bien las cosas, al parecer tengo un error lógico
|
|
|
En línea
|
|
|
|
engel lex
|
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
|
|
« Última modificación: 19 Febrero 2015, 23:53 pm por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
Y eso como lo hago??? no entiendo bien este asunto de encender bits y apagar
|
|
|
En línea
|
|
|
|
engel lex
|
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 mask=0b0100#el 1 está en tercera posición, no 4ta
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
Pues no se si ya esta bien así: def controla_bit4(entero): mask=0b11011 onoff=mask & entero if onoff > 0: print "on" else: print "off" print controla_bit4(0b0)
Me da la consola: 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?
|
|
|
En línea
|
|
|
|
engel lex
|
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... 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 mask=0b11011
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 -.-
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Joe Fraddy
Desconectado
Mensajes: 277
|
Listo, cambié por return y modifique mask, y quedó, mi código es el siguiente: def controla_bit4(entero): mask=0b1000 onoff=mask & entero if onoff > 0: return "on" else: return "off" print controla_bit4(0b0)
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!!!
|
|
|
En línea
|
|
|
|
engel lex
|
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%B3gicay sobre operadores a nivel de bit http://es.wikipedia.org/wiki/Operador_a_nivel_de_bits
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda con un comparador de 16 bits y otro d 4 bits en complemento a2
Electrónica
|
basileia
|
0
|
4,074
|
22 Abril 2006, 18:38 pm
por basileia
|
|
|
NOVATO... pasando de Vista 32 bits a Win 7 64 bits..... Alguien me ayuda?
« 1 2 »
Windows
|
TCHITON
|
13
|
12,318
|
20 Enero 2012, 23:27 pm
por d3xf4ult
|
|
|
tengo una notbook de 64 bits y necesito trabajar con un prog de 32 bits
Programación Visual Basic
|
twister69
|
2
|
3,396
|
4 Septiembre 2012, 13:55 pm
por twister69
|
|
|
[Ubuntu] Instalar librerías 32 bits para SO a 64 bits (ia32-libs)
GNU/Linux
|
#!Mitsu
|
2
|
17,201
|
29 Noviembre 2014, 23:43 pm
por #!Mitsu
|
|
|
duda máscara de bits. ATmega
Programación C/C++
|
kotito
|
1
|
2,106
|
16 Junio 2017, 01:11 am
por MAFUS
|
|