(lsh (lsh transparency
24) -24)
Why the shift of 24 bits?
The bit to be removed is the 25
th bit (33554432), hence for 32-bit integers, only a 7-bit shift is required to remove all bits above and including the 25
th, and one could not argue that the code is accounting for 64-bit integers, since this would require a shift of 39 bits.
However, to remove the single 25
th bit, rather than shifting bits back & forth, an alternative solution is to simply mask the unrequired bit, e.g.: