2009-07-22 11 views
27

Soy un programador de C++ y de vez en cuando me encontraré con algún código que utiliza operadores bit a bit para manipular cosas en el nivel de bits, pero no tengo una comprensión real de esos conceptos. Entonces me gustaría un recurso que me ayude a aprenderlo tan bien que se convierta en una segunda naturaleza. ¿Alguien sabe de buenos recursos para esto? Una búsqueda en google no me proporcionó mucha información útil. Tal vez no estoy seguro de qué buscar. ¡Gracias!¿Recursos para aprender la programación bit a bit?

+0

En los lenguajes de alto nivel, siempre he omitido las instrucciones de rotar para transportar. Si alguna vez diseño un idioma, lo tendrá. – Nosredna

+0

¿En qué tipo de aplicaciones necesitas eso? Supongo que com. –

+0

Bueno, al tenerlo, es más fácil hacer turnos de multibyte. Lo que sea que lo necesites. Cosas que dejo caer en asamblea para hacer. Tal vez en lugar del cambio y rotar a través del acarreo, podría hacer algo de nivel superior, como permitir bit a bit en matrices de enteros. – Nosredna

Respuesta

17

Me encanta el libro de Henry Warren Hacker's Delight. El sitio web ofrece el Capítulo 2 ("Conceptos básicos") como una muestra gratuita que, a pesar del nombre, ofrece algunos trucos de manipulación de bits bastante sofisticados. Puede que no sea el mejor lugar para comenzar, pero es fantástico una vez que comienzas a sentirte cómodo con la aritmética de bits.

+1

+1 para Hacker's Delight - es un excelente libro al que constantemente me refiero para formas rápidas de realizar todo tipo de algoritmos – DaveR

+0

También +1 para este gran libro. Aunque no todos los trucos son una victoria en estos días, todavía es fascinante. –

+0

Aunque hay muchos enlaces web buenos en la lista, este libro me parece justo lo que estoy buscando. ¡Gracias! – JimDaniel

2

Me imagino que hay otros recursos posiblemente mejores, pero me acordé de que hay Washington s un artículo sobre esto que leí hace unos años en GameDev.Net.

BitWise Operations in C

+0

Acabo de vincular a la misma, estaba en mis marcadores de Google Chrome. Fue un buen tutorial. – Kredns

4
2

Acepto las respuestas anteriores sobre ese artículo de GameDev.net. Eso fue bueno para mí en el pasado.

Este artículo sobre Desnormalización con máscaras de bits (http://maggienelson.com/2009/02/denormalization-with-bitmasks/) también me ha sido útil e incluye ejemplos específicos de la base de datos, en caso de que sean de utilidad.