When doing arithmetic in a programming language there is the arcane art of optimizing with the help of bit-wise operations. Of course I’m talking about Bit Hacks.
On a readability and maintainability ranking from 1 to
awk Bit Hacks reach a level of Brainfuck.
Yet they can be an incredibly low-level optimization useful to tweak the last bit of performance out of an operation but are difficult to get right and 100% portable.
In this post we’ll take a look at a rather easy function -
clz(x) that will return the number of leading zero bits in an
unsigned integer type
In particular I’ll show you how to properly wrap GCC’s