regarding bitwise shift in "eventloop.h"
Sean Egan
seanegan at gmail.com
Wed Aug 1 01:42:08 EDT 2007
On 7/31/07, Harry Tanama <pr0gm3r at gmail.com> wrote:
> I don't really understand the purpose of using bitwise left-shift in
> constant value of PurpleInputCondition enum.
> 4 is 100 in binary. Adding 2 zeros to the end gives 10000, which is 16, i.e.
> 4*22 = 4*4 = 16. I don't quiet understand why we're doing arithmetic binary
> in the
> PURPLE_INPUT_READ = 1 << 0, and PURPLE_INPUT_WRITE = 1 << 1
Hi, Harry. These values are binary flags. One 32-bit integer value can
hold 32 of these flags.
If we were to have a third flag, it would be 1 << 3, 100 in binary, 4
in decimal. Then 1 << 4 (8), 1 << 5 (16), etc.
Setting the values to bit-shifted constants is just slightly more
readable than setting them to constant powers of two.
Any good compiler will optimize those values as not to require any
calculation at runtime.
-s.
More information about the Devel
mailing list