Hace algún tiempo, he visto en algún lugar un truco para realizar operaciones de módulo usando operadores de bits. Pero ahora no puedo de ninguna manera realizar una operación adecuada. Alguien sabe como hacerlo ? Por lo que recuerdo, fue más rápido que usar%.Otras formas de realizar la operación de módulo
5
A
Respuesta
8
El "truco" está en binario AND
un valor de 1. Cualquier número impar debe tener el primer bit puesto a 1.
Así
var foo = 7;
if(foo & 1) { // true
}
El uso de un nivel de bits y tiene un mejor rendimiento en casi todas las plataformas/navegadores.
for(var loop = 0; loop < 10; loop++) {
if(loop & 1) {
console.log('I am ', loop, ' and I am odd!');
}
}
8
Usted puede hacer el módulo de 2^k (una potencia de 2) por su valor AND con (2^k) -1.
+1
+1 pero solo para números positivos –
Cuestiones relacionadas
- 1. formas mejores para poner en práctica una operación de módulo (pregunta algoritmo)
- 2. Módulo en orden de operación
- 3. Operación de módulo de coma flotante
- 4. operación de módulo con números negativos
- 5. La operación de módulo en números negativos en Python
- 6. SVN Error (No se pudo realizar la operación atómica)
- 7. Otras formas de lidiar con la "inicialización de bucle" en C#
- 8. Extensiones de Chrome: ¿otras formas de leer los cuerpos de respuesta que chrome.devtools.network?
- 9. no se puede realizar la operación DML dentro de una consulta
- 10. ¿Puedo realizar una operación INSERT-SELECT con la API de Rails?
- 11. Cómo realizar una consulta SQL a la operación de DataTable que puede cancelarse
- 12. Otras formas de verificar el tamaño del archivo antes de cargarlo
- 13. ¿Cuáles son algunas de las mejores formas de realizar actualizaciones silenciosas para una aplicación de escritorio?
- 14. Formas de calcular la similitud
- 15. Reconocimiento de formas complejas
- 16. ¿Hay herramientas para convertir entre ANTLR y otras formas de BNF?
- 17. El formulario está oculto detrás de otras formas cuando se llama a ShowModal
- 18. En Python, ¿qué otras formas de escribir si x == 1 o x == 5 o x == 10 ...?
- 19. ¿Cómo hacer una operación de módulo en Object-C/Cocoa Touch?
- 20. ¿Cómo puedo lograr una operación de módulo con los valores de System.TimeSpan, sin bucle?
- 21. Flujo de control en T-SQL SP usando IF..ELSE IF - ¿Hay otras formas?
- 22. cómo cancelar la operación fuera de operación creada con addOperationWithBlock?
- 23. Message Queue Excepción: Cola no existe o no tiene permisos suficientes para realizar la operación
- 24. Tenga la consola svn enfocada al realizar una operación svn en eclipse
- 25. Operación inversa para la función de Javascript.toString()
- 26. ¿Admite un montón binario la operación de disminución de tecla?
- 27. ¿Solución para "no se puede realizar una operación DML dentro de una consulta"?
- 28. ¿Alguna sugerencia para realizar una operación arbitraria usando argumentos dados de tipos arbitrarios?
- 29. CoreData 'Este NSPersistentStoreCoordinator no tiene tiendas persistentes. No puede realizar una operación de guardado '.
- 30. ¿Qué tan caro es realizar una operación de lanzamiento Vs i ++?
http://en.wikipedia.org/wiki/Modulo_operation#Performance_issues - para potencias de 2. –
Buena pregunta, he comprobado aquí: http://jsperf.com/js-modulo y ¡las respuestas parecen buenas! – TTT