Re:Bit Twiddling Hacks (2005)
by zimmerfrei on Sunday July 03, 2016 @02:49PM
(#12027142)
These hacks have actually been modeled and generalized into a mathematical construct called Mixed Boolean Arithmetic [1][2]. With a few matrix operations, you can actually generate an arbitrary number of hacky-looking (or obfuscated, as that was the actual intention of the authors of [1]) expressions from any initial, simple expression.
[1] http://link.springer.com/chapter/10.1007/978-3-540-77535-5_5 (and I deeply apologize I can't find the free PDF version, though sci-hub may help here)
[2] http://blog.quarkslab.com/what-theoretical-tools-are-needed-...
>> and I deeply apologize I can't find the free PDF version, though sci-hub may help here)
Use https://sci-hub.ac/10.1007/978-3-540-77535-5_5 in order to prevent browsers complaining about certificate mismatch.
I would suggest a great resource about that:
I have that book. Pretty good. If you want to save some money, buy the DRM free PDF copy on informit.com but wait for one of their 40-50% off sales which happen near major holiday. I don't see one for July 4th though.
Re:Bit Twiddling Hacks (2005)
by jhallenworld on Sunday July 03, 2016 @10:03PM
(#12028572)
My favorite is the elementary x&-x (isolate least significant set bit). This is basically a priority arbiter using the carry chain, and in hardware (HDL), since the carry chain is already heavily optimized, is faster than priority arbiters using basic gates.
Next favorite is "compress selected bits", because I figured out the inverse, which Henry Warren then published as "expand" in the 2nd edition: http://www.hackersdelight.org/hdcodetxt/expand.c.txt
Coincidently Hacker's Delight 2e is available on Safari Books Online for any other fellow subscribers.
https://www.safaribooksonline.com/library/view/hackers-delig...
Seconding the Hacker's Delight book.
I think you'll probably enjoy it more if you do low-level programming, but there's a lot of cool mind-expanding stuff in there--the treatment of Hilbert Curves is quite fun.
[1] http://hackersdelight.org/