Conozco constantemente a personas que utilizan operadores bit a bit para hacer cosas rápidas, sencillas y elegantes. Me gustaría aprender algunos trucos útiles. ¿Cuáles son algunos de los casos de operador de bit a bit más útiles?¿Cuáles son algunas buenas maneras de aprovechar los operadores bit a bit?
Respuesta
Aunque estoy de acuerdo con Michael McGowan, en general, un poco haciendo girar los cortes pueden ser muy útiles en ciertas situaciones, por ejemplo en la programación de hardware integrado, que no tiene toda la instrucciones usuales También he tenido un buen uso de tales técnicas cuando codifico programas en demostradores de teoremas como los solucionadores de SMT, que no admitían todas las operaciones que quería usar.
Mi primera parada cuando busco una solución bit a bit a un problema es el sitio bit twiddling hacks. Tiene bastantes fragmentos de código para muchas de las técnicas más comunes.
Luego está también el libro Hacker's Delight que cubre algunas técnicas de bits en profundidad.
Normalmente no es una buena idea usar tales trucos. Los compiladores modernos a menudo hacen este tipo de cosas detrás de escena cuando es posible. Dicho esto, a veces se tiene conocimiento de que el compilador no lo hace (tal vez que un valor particular esté garantizado en el tiempo de ejecución para ser un poder de 2). Si determina que es una buena idea probar tales trucos, here are useful bit twiddling hacks.
constante de tiempo de 2 exponenciación:
x = 1 << n; // x = pow(2, n)
Siempre se puede hacer uso del operador de bits desviación a la izquierda (< <) a mutiply el número dado por 2.
Para Ex -
public class abc {public static void main (String[] arg)
{
int a = 650;
int doubleOfa = a<<1;
System.out.println(a);
System.out.println(doubleOfa);
}
}
he encontrado algunas operaciones bit a bit colección interesante en este lugar: http://graphics.stanford.edu/~seander/bithacks.html
- 1. ¿Qué son los operadores bit a bit?
- 2. Algunas preguntas sobre los operadores bit a bit
- 3. ¿Cuáles son algunas buenas maneras de hacer el bloqueo intermachine?
- 4. operadores bit a bit en Postgres
- 5. CUDA: ¿Por qué los operadores bit a bit son a veces más rápidos que los operadores lógicos?
- 6. Tipo de devolución de operadores bit a bit en C++
- 7. Utilización de operadores bit a bit sobre banderas
- 8. Mod de potencia 2 en operadores bit a bit?
- 9. ¿Qué hacen estos operadores bit a bit de JavaScript?
- 10. Operadores de desplazamiento bit a bit. Firmado y sin firmar
- 11. operaciones bit a bit sobre no números
- 12. PHP matriz bit a bit
- 13. ¿Cuáles son los pros/contras de 64 bit .NET?
- 14. ¿Cuáles son algunas buenas maneras de implementar la eliminación de llamadas finales?
- 15. ¿Cuáles son buenas maneras de monitorear el estado del servidor?
- 16. uso de los operadores bit a bit para empaquetar valores múltiples en un int
- 17. Operadores de bit a bit y conversión de un int a 2 bytes y viceversa
- 18. Lua - Operaciones lógicas de bit a bit
- 19. OR bit a bit de las constantes
- 20. GLSL: ¿por qué se reservan los operadores bit a bit? ¿Cuál es una buena alternativa al uso de operaciones bit a bit (operaciones de punto flotante que emulan bit a bit)
- 21. bit a bit de sustracción en Python
- 22. Python: aritmética bit a bit sin signo de 32 bit
- 23. ¿Cuáles son algunas buenas revistas de Informática/Programación?
- 24. operaciones bit a bit de 48 bits en Javascript?
- 25. aplicaciones prácticas de operaciones bit a bit
- 26. ¿Cuáles son algunas buenas soluciones de ORM de Python?
- 27. Operadores booleanos simples para indicadores de bit
- 28. operaciones bit a bit en Postgres
- 29. ¿Cuáles son algunas buenas alternativas de Entity Framework?
- 30. ¿Cuáles son algunas buenas herramientas gratuitas de HttpDebugging?
Creo que esto es demasiado amplio. Hay algunas buenas preguntas para casos específicos cuando busca [bithacks] (http://stackoverflow.com/search?q=bithacks). [Casos de uso del mundo real de operadores bit a bit] (http://stackoverflow.com/q/2096916/995714). https://graphics.stanford.edu/~seander/bithacks.html –