En algunos códigos en los que estoy trabajando debo ocuparme de diez parámetros independientes que pueden tomar uno de dos valores (0 o 1). Esto crea 2^10 condiciones distintas. Algunas de las condiciones nunca ocurren y pueden omitirse, pero las que sí ocurren son MUCHO y hacer un switch
para manejar todos los casos es una locura.Computación y detección de bits de indicador
Quiero usar 10 if
declaraciones en lugar de una enorme switch
. Por esto, sé que debería usar los bits de marca, o más bien los bytes de marca, ya que el lenguaje es javascript y es más fácil trabajar con una cadena de 10 bytes para representar un binario de 10 bits.
Ahora, mi problema es que no sé cómo implementar esto. He visto esto usado en API
s donde las opciones de selección múltiple están expuestas con los números 1, 2, 4, 8, ..., n^(n-1) que son equivalentes decimales de 1, 10, 100, 1000, etc. en binario Por lo tanto, si realizamos una llamada como bar = foo(7)
, la barra será un objeto con las opciones que permitan las tres marcas de la derecha.
Puedo convertir el número decimal en binario y en cada declaración if
comprobar para ver si el dígito correspondiente está configurado o no. Pero me pregunto, ¿hay una manera de determinar el dígito n-th
de un número decimal es cero o uno en forma binaria, sin realmente haciendo la conversión?
WOW! ¡Muy rápido! Quería aceptar su respuesta de inmediato, pero aparentemente debería esperar al menos 9 minutos. Gracias de verdad. –
+1 estaba escribiendo algo similar pero era más rápido;) –